UpdraftPlus WordPress Backup Plugin - Version 1.7.41

Version Description

  • 2013/11/16 =

  • FIX: Work around bug in some old PHP versions on Windows when creating database dump

  • FIX: If binary mysqldump failed, then retry

  • TWEAK: Log PHP notices in the log file

  • TWEAK: Allow primitive exclusion based on filename suffixes

Download this release

Release Info

Developer DavidAnderson
Plugin Icon 128x128 UpdraftPlus WordPress Backup Plugin
Version 1.7.41
Comparing to
See all releases

Code changes from version 1.7.40 to 1.7.41

admin.php CHANGED
@@ -2142,7 +2142,7 @@ CREATE TABLE $wpdb->signups (
2142
 
2143
  echo '<label for="updraft_include_others_exclude">'.__('Exclude these:', 'updraftplus').'</label>';
2144
 
2145
- echo '<input title="'.__('If entering multiple files/directories, then separate them with commas. You can use a * at the end of any entry as a wildcard.', 'updraftplus').'" type="text" id="updraft_include_others_exclude" name="updraft_include_others_exclude" size="54" value="'.htmlspecialchars($include_others_exclude).'" />';
2146
 
2147
  echo '<br>';
2148
 
@@ -2893,7 +2893,7 @@ ENDHERE;
2893
  $second_loop[$type] = $files;
2894
  }
2895
  $updraftplus_restorer->delete = (UpdraftPlus_Options::get_updraft_option('updraft_delete_local')) ? true : false;
2896
- if ('none' === $service || '' === $service) {
2897
  if ($updraftplus_restorer->delete) _e('Will not delete any archives after unpacking them, because there was no cloud storage for this backup','updraftplus').'<br>';
2898
  $updraftplus_restorer->delete = false;
2899
  }
2142
 
2143
  echo '<label for="updraft_include_others_exclude">'.__('Exclude these:', 'updraftplus').'</label>';
2144
 
2145
+ echo '<input title="'.__('If entering multiple files/directories, then separate them with commas. You can use a * at the start or end of any entry as a wildcard.', 'updraftplus').'" type="text" id="updraft_include_others_exclude" name="updraft_include_others_exclude" size="54" value="'.htmlspecialchars($include_others_exclude).'" />';
2146
 
2147
  echo '<br>';
2148
 
2893
  $second_loop[$type] = $files;
2894
  }
2895
  $updraftplus_restorer->delete = (UpdraftPlus_Options::get_updraft_option('updraft_delete_local')) ? true : false;
2896
+ if ('none' === $service || empty($service) || (is_array($service) && 1 == count($service) && (in_array('none', $service) || in_array('', $service)))) {
2897
  if ($updraftplus_restorer->delete) _e('Will not delete any archives after unpacking them, because there was no cloud storage for this backup','updraftplus').'<br>';
2898
  $updraftplus_restorer->delete = false;
2899
  }
backup.php CHANGED
@@ -842,7 +842,7 @@ class UpdraftPlus_Backup {
842
 
843
  # TODO: Lower this from 10,000 if the feedback is good
844
  $bindump = (isset($rows) && $rows>10000 && is_string($binsqldump)) ? $this->backup_table_bindump($binsqldump, $table, $where) : false;
845
- if (!$bindump) $this->backup_table($table, $where);
846
 
847
  if (!empty($manyrows_warning)) $updraftplus->log_removewarning('manyrows_'.$table);
848
 
@@ -1376,7 +1376,7 @@ class UpdraftPlus_Backup {
1376
 
1377
  $this->zip_basename = $this->updraft_dir.'/'.$backup_file_basename.'-'.$whichone;
1378
 
1379
- $error_occured = false;
1380
 
1381
  # Store this in its original form
1382
  $this->source = $source;
@@ -1386,7 +1386,7 @@ class UpdraftPlus_Backup {
1386
  if (!is_array($source)) $source=array($source);
1387
  foreach ($source as $element) {
1388
  $add_them = $this->makezip_recursive_add($element, basename($element), $element);
1389
- if (is_wp_error($add_them) || false === $add_them) $error_occured = true;
1390
  }
1391
 
1392
  // Any not yet dispatched? Under our present scheme, at this point nothing has yet been despatched. And since the enumerating of all files can take a while, we can at this point do a further modification check to reduce the chance of overlaps.
@@ -1402,10 +1402,10 @@ class UpdraftPlus_Backup {
1402
  foreach ($add_them->get_error_messages() as $msg) {
1403
  $updraftplus->log("Error returned from makezip_addfiles: ".$msg);
1404
  }
1405
- $error_occured = true;
1406
  } elseif (false === $add_them) {
1407
  $updraftplus->log("Error: makezip_addfiles returned false");
1408
- $error_occured = true;
1409
  }
1410
  }
1411
 
@@ -1415,7 +1415,7 @@ class UpdraftPlus_Backup {
1415
  $destination_base = $backup_file_basename.'-'.$whichone.$itext.'.zip.tmp';
1416
  $destination = $this->updraft_dir.'/'.$destination_base;
1417
 
1418
- if ($this->zipfiles_added > 0 || $error_occured == false) {
1419
  // ZipArchive::addFile sometimes fails
1420
  if ((file_exists($destination) || $this->index == $original_index) && @filesize($destination) < 90 && 'UpdraftPlus_ZipArchive' == $this->use_zip_object) {
1421
  $updraftplus->log("makezip_addfiles(ZipArchive) apparently failed (file=".basename($destination).", type=$whichone, size=".filesize($destination).") - retrying with PclZip");
842
 
843
  # TODO: Lower this from 10,000 if the feedback is good
844
  $bindump = (isset($rows) && $rows>10000 && is_string($binsqldump)) ? $this->backup_table_bindump($binsqldump, $table, $where) : false;
845
+ if (true !== $bindump) $this->backup_table($table, $where);
846
 
847
  if (!empty($manyrows_warning)) $updraftplus->log_removewarning('manyrows_'.$table);
848
 
1376
 
1377
  $this->zip_basename = $this->updraft_dir.'/'.$backup_file_basename.'-'.$whichone;
1378
 
1379
+ $error_occurred = false;
1380
 
1381
  # Store this in its original form
1382
  $this->source = $source;
1386
  if (!is_array($source)) $source=array($source);
1387
  foreach ($source as $element) {
1388
  $add_them = $this->makezip_recursive_add($element, basename($element), $element);
1389
+ if (is_wp_error($add_them) || false === $add_them) $error_occurred = true;
1390
  }
1391
 
1392
  // Any not yet dispatched? Under our present scheme, at this point nothing has yet been despatched. And since the enumerating of all files can take a while, we can at this point do a further modification check to reduce the chance of overlaps.
1402
  foreach ($add_them->get_error_messages() as $msg) {
1403
  $updraftplus->log("Error returned from makezip_addfiles: ".$msg);
1404
  }
1405
+ $error_occurred = true;
1406
  } elseif (false === $add_them) {
1407
  $updraftplus->log("Error: makezip_addfiles returned false");
1408
+ $error_occurred = true;
1409
  }
1410
  }
1411
 
1415
  $destination_base = $backup_file_basename.'-'.$whichone.$itext.'.zip.tmp';
1416
  $destination = $this->updraft_dir.'/'.$destination_base;
1417
 
1418
+ if ($this->zipfiles_added > 0 || $error_occurred == false) {
1419
  // ZipArchive::addFile sometimes fails
1420
  if ((file_exists($destination) || $this->index == $original_index) && @filesize($destination) < 90 && 'UpdraftPlus_ZipArchive' == $this->use_zip_object) {
1421
  $updraftplus->log("makezip_addfiles(ZipArchive) apparently failed (file=".basename($destination).", type=$whichone, size=".filesize($destination).") - retrying with PclZip");
class-zip.php CHANGED
@@ -107,14 +107,14 @@ class UpdraftPlus_BinZip extends UpdraftPlus_PclZip {
107
 
108
  while ((!feof($pipes[1]) || !feof($pipes[2]) || (is_array($files) && count($files)>0)) && false !== ($changes = @stream_select($read, $write, $except, 0, 200000))) {
109
 
110
- if (in_array($pipes[0], $write) && is_array($files) && count($files)>0) {
111
  $file = array_pop($files);
112
  // Send the list of files on stdin
113
  fwrite($pipes[0], $file."\n");
114
  if (0 == count($files)) fclose($pipes[0]);
115
  }
116
 
117
- if (in_array($pipes[1], $read)) {
118
  $w = fgets($pipes[1]);
119
  // Logging all this really slows things down; use debug to mitigate
120
  if ($w && $updraftplus_backup->debug) $updraftplus->log("Output from zip: ".trim($w), 'debug');
@@ -137,7 +137,7 @@ class UpdraftPlus_BinZip extends UpdraftPlus_PclZip {
137
  }
138
  }
139
 
140
- if (in_array($pipes[2], $read)) {
141
  $last_error = fgets($pipes[2]);
142
  if (!empty($last_error)) $this->last_error = rtrim($last_error);
143
  }
107
 
108
  while ((!feof($pipes[1]) || !feof($pipes[2]) || (is_array($files) && count($files)>0)) && false !== ($changes = @stream_select($read, $write, $except, 0, 200000))) {
109
 
110
+ if (is_array($write) && in_array($pipes[0], $write) && is_array($files) && count($files)>0) {
111
  $file = array_pop($files);
112
  // Send the list of files on stdin
113
  fwrite($pipes[0], $file."\n");
114
  if (0 == count($files)) fclose($pipes[0]);
115
  }
116
 
117
+ if (is_array($read) && in_array($pipes[1], $read)) {
118
  $w = fgets($pipes[1]);
119
  // Logging all this really slows things down; use debug to mitigate
120
  if ($w && $updraftplus_backup->debug) $updraftplus->log("Output from zip: ".trim($w), 'debug');
137
  }
138
  }
139
 
140
+ if (is_array($read) && in_array($pipes[2], $read)) {
141
  $last_error = fgets($pipes[2]);
142
  if (!empty($last_error)) $this->last_error = rtrim($last_error);
143
  }
languages/updraftplus-de_DE.mo CHANGED
Binary file
languages/updraftplus-de_DE.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2013-11-15 07:56:12+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -128,7 +128,7 @@ msgstr "Die zulässige Speichernutzung (RAM) für PHP ist sehr gering (%s MB) -
128
 
129
  #: updraftplus.php:547 admin.php:298
130
  msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommmended value is %s seconds or more)"
131
- msgstr ""
132
 
133
  #: udaddons/options.php:422
134
  msgid "You have an inactive purchase"
@@ -152,7 +152,7 @@ msgstr "Add-Ons verwalten"
152
 
153
  #: backup.php:448
154
  msgid "With the next release of UpdraftPlus, you will need an add-on to use a different email address to the site owner's (%s). See: %s"
155
- msgstr ""
156
 
157
  #: udaddons/options.php:296
158
  msgid "An unknown response was received. Response was:"
@@ -172,7 +172,7 @@ msgstr "Gehe hierhin"
172
 
173
  #: udaddons/options.php:406
174
  msgid "(apparently a pre-release or withdrawn release)"
175
- msgstr ""
176
 
177
  #: udaddons/options.php:412
178
  msgid "Available for this site (via your all-addons purchase)"
@@ -432,11 +432,11 @@ msgstr "Hier schreibt UpdraftPlus seine Archive hinein. Das Verzeichnis muss fü
432
 
433
  #: admin.php:2368
434
  msgid "<b>Do not</b> place it inside your uploads or plugins directory, as that will cause recursion (backups of backups of backups of...)."
435
- msgstr ""
436
 
437
  #: admin.php:2341
438
  msgid "UpdraftPlus will split up backup archives when they exceed this file size. The default value is 800 megabytes. Be careful to leave some margin if your web-server has a hard size limit (e.g. the 2 Gb / 2048 Mb limit on some 32-bit servers/file systems)."
439
- msgstr ""
440
 
441
  #: admin.php:1850
442
  msgid "Waiting until scheduled time to retry because of errors"
@@ -508,11 +508,11 @@ msgstr "Sicherungen in Bearbeitung:"
508
 
509
  #: admin.php:302
510
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
511
- msgstr ""
512
 
513
  #: restorer.php:278 restorer.php:285
514
  msgid "UpdraftPlus needed to create a %s in your content directory, but failed - please check your file permissions and enable the access (%s)"
515
- msgstr ""
516
 
517
  #: restorer.php:278
518
  msgid "folder"
@@ -540,20 +540,20 @@ msgstr "Deine Webseite wird unregelmäßig besucht und UpdraftPlus bekommt nicht
540
 
541
  #: methods/googledrive.php:482
542
  msgid "<strong>This is NOT a folder name</strong>. To get a folder's ID navigate to that folder in Google Drive in your web browser and copy the ID from your browser's address bar. It is the part that comes after <kbd>#folders/</kbd>. Leave empty to use your root folder."
543
- msgstr ""
544
 
545
  #: includes/Dropbox/OAuth/Consumer/ConsumerAbstract.php:88
546
  #: methods/googledrive.php:63
547
  msgid "The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
548
- msgstr ""
549
 
550
  #: admin.php:1360
551
  msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
552
- msgstr ""
553
 
554
  #: addons/autobackup.php:221
555
  msgid "Backup succeeded <a href=\"#updraftplus-autobackup-log\" onclick=\"var s = document.getElementById('updraftplus-autobackup-log'); s.style.display = 'block';\">(view log...)</a> - now proceeding with the updates..."
556
- msgstr ""
557
 
558
  #: addons/autobackup.php:298
559
  msgid "UpdraftPlus Automatic Backups"
@@ -602,11 +602,11 @@ msgstr "Fehler sind aufgetreten:"
602
 
603
  #: addons/autobackup.php:219
604
  msgid "Backup succeeded <a href=\"#updraftplus-autobackup-log\" onclick=\"jQuery('#updraftplus-autobackup-log').slideToggle();\">(view log...)</a> - now proceeding with the updates..."
605
- msgstr ""
606
 
607
  #: addons/autobackup.php:29 addons/autobackup.php:302
608
  msgid "Automatically backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
609
- msgstr ""
610
 
611
  #: addons/autobackup.php:64
612
  msgid "Creating %s and database backup with UpdraftPlus..."
@@ -614,11 +614,11 @@ msgstr "Erstelle %s und Datenbank Sicherung mit UpdraftPlus ..."
614
 
615
  #: addons/morefiles.php:94
616
  msgid "Unable to read zip file (%s) - could not pre-scan it to check its integrity."
617
- msgstr ""
618
 
619
  #: addons/morefiles.php:99
620
  msgid "Unable to open zip file (%s) - could not pre-scan it to check its integrity."
621
- msgstr ""
622
 
623
  #: addons/morefiles.php:118 addons/morefiles.php:119
624
  msgid "This does not look like a valid WordPress core backup - the file %s was missing."
@@ -662,7 +662,7 @@ msgstr "UpdraftPlus Premium kann <strong>automatisch</strong> eine Sicherung dei
662
 
663
  #: admin.php:137 admin.php:287
664
  msgid "Be safe every time, without needing to remember - follow this link to learn more."
665
- msgstr ""
666
 
667
  #: admin.php:272
668
  msgid "Update Plugin"
@@ -686,11 +686,11 @@ msgstr "Uploadpfad (%s) existiert nicht - setze zurück (%s)"
686
 
687
  #: admin.php:1345
688
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
689
- msgstr ""
690
 
691
  #: admin.php:110
692
  msgid "Follow this link to attempt decryption and download the database file to your computer."
693
- msgstr ""
694
 
695
  #: admin.php:111
696
  msgid "This decryption key will be attempted:"
@@ -710,11 +710,11 @@ msgstr "Die Datei wurde hochgeladen."
710
 
711
  #: admin.php:105
712
  msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz)). However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
713
- msgstr ""
714
 
715
  #: admin.php:106
716
  msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
717
- msgstr ""
718
 
719
  #: admin.php:107
720
  msgid "Upload error:"
@@ -722,7 +722,7 @@ msgstr "Fehler beim Hochladen:"
722
 
723
  #: admin.php:108
724
  msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
725
- msgstr ""
726
 
727
  #: admin.php:109
728
  msgid "Upload error"
@@ -1137,7 +1137,7 @@ msgstr ""
1137
 
1138
  #: addons/sftp.php:27
1139
  msgid "Some servers advertise encrypted FTP as available, but then time-out (after a long time) when you attempt to use it. If you find this happenning, then go into the \"Expert Options\" (below) and turn off SSL there."
1140
- msgstr ""
1141
 
1142
  #: addons/sftp.php:64
1143
  msgid "Check your file permissions: Could not successfully create and enter directory:"
@@ -1145,7 +1145,7 @@ msgstr "Überprüfe deine Dateisystemberechtigungen: Konnte kein Verzeichnis ers
1145
 
1146
  #: methods/dropbox.php:273
1147
  msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support and ask for them to enable it."
1148
- msgstr ""
1149
 
1150
  #: methods/s3.php:537
1151
  msgid "Please check your access credentials."
@@ -1169,7 +1169,7 @@ msgstr "DROP der Tabellen nicht möglich, lösche stattdessen (%s)"
1169
 
1170
  #: restorer.php:752 admin.php:1000
1171
  msgid "To import an ordinary WordPress site into a multisite installation requires both the multisite and migrator add-ons."
1172
- msgstr ""
1173
 
1174
  #: restorer.php:758 admin.php:1008
1175
  msgid "Site information:"
@@ -1185,11 +1185,11 @@ msgstr "Warnung:"
1185
 
1186
  #: restorer.php:698
1187
  msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
1188
- msgstr ""
1189
 
1190
  #: restorer.php:713
1191
  msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure"
1192
- msgstr ""
1193
 
1194
  #: restorer.php:35 admin.php:995
1195
  msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2013-11-16 01:27:35+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
128
 
129
  #: updraftplus.php:547 admin.php:298
130
  msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommmended value is %s seconds or more)"
131
+ msgstr "Die erlaubte Ausführzeit von WordPress Plugins ist sehr gering (%s Sekunden) - du solltest diesen Wert erhöhen, um fehlschlagende Sicherungen durch Time-Outs zu vermeiden (kontaktiere deinen Webhoster für Hilfe - es geht um die PHP-Einstellung max_execution_time; der empfohlene Wert beträgt %s Sekunden oder mehr)"
132
 
133
  #: udaddons/options.php:422
134
  msgid "You have an inactive purchase"
152
 
153
  #: backup.php:448
154
  msgid "With the next release of UpdraftPlus, you will need an add-on to use a different email address to the site owner's (%s). See: %s"
155
+ msgstr "Mit der nächsten Version von UpdraftPlus benötigst du ein Add-On, um eine andere E-Mail-Adresse als die des Seitenbesitzers (%s) anzugeben. Siehe: %s"
156
 
157
  #: udaddons/options.php:296
158
  msgid "An unknown response was received. Response was:"
172
 
173
  #: udaddons/options.php:406
174
  msgid "(apparently a pre-release or withdrawn release)"
175
+ msgstr "(anscheinend eine Vor-Version oder eine zurückgezogene Version)"
176
 
177
  #: udaddons/options.php:412
178
  msgid "Available for this site (via your all-addons purchase)"
432
 
433
  #: admin.php:2368
434
  msgid "<b>Do not</b> place it inside your uploads or plugins directory, as that will cause recursion (backups of backups of backups of...)."
435
+ msgstr "Platziere es <b>auf keinen Fall</b> in dein upload- oder plugin-Verzeichnis, da dies Schleifen bewirken würde (Sicherungen von Sicherungen..)."
436
 
437
  #: admin.php:2341
438
  msgid "UpdraftPlus will split up backup archives when they exceed this file size. The default value is 800 megabytes. Be careful to leave some margin if your web-server has a hard size limit (e.g. the 2 Gb / 2048 Mb limit on some 32-bit servers/file systems)."
439
+ msgstr "UpdraftPlus wird alle Sicherungsarchive aufteilen, wenn diese eine vorgegebene Größe überschreiten. Der Standardwert ist 800 Megabyte. Sei vorsichtig und lasse eine Lücke, wenn dein Server Größen-Limits hat (z.B. 2GB/2048 MB Limitierungen auf 32-Bit Systemen oder Dateisystemen)."
440
 
441
  #: admin.php:1850
442
  msgid "Waiting until scheduled time to retry because of errors"
508
 
509
  #: admin.php:302
510
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
511
+ msgstr "In deiner WordPress-Installation ist der Planner deaktiviert (via DISABLE_WP_CRON Einstellung). Es können keine Sicherungen durchgeführt werden (auch &quot;Jetzt sichern&quot; nicht), so lange du keine Möglichkeit hast, den Planner manuell auszuführen oder ihn wieder zu aktivieren."
512
 
513
  #: restorer.php:278 restorer.php:285
514
  msgid "UpdraftPlus needed to create a %s in your content directory, but failed - please check your file permissions and enable the access (%s)"
515
+ msgstr "UpdraftPlus musste ein(e) %s in deinem content-Verzeichnis erstellen, schlug aber fehl - überprüfe deine Dateiberechtigungen und aktiviere den Zugang (%s)"
516
 
517
  #: restorer.php:278
518
  msgid "folder"
540
 
541
  #: methods/googledrive.php:482
542
  msgid "<strong>This is NOT a folder name</strong>. To get a folder's ID navigate to that folder in Google Drive in your web browser and copy the ID from your browser's address bar. It is the part that comes after <kbd>#folders/</kbd>. Leave empty to use your root folder."
543
+ msgstr "<strong>Das ist KEIN Verzeichnisname</strong>. Um die ID des Verzeichnisses zu bekommen, gehe im Browser zu Google Drive und kopiere die ID aus der Adressleiste deines Browsers. Es ist der Part, der nach <kbd>#folders/</kbd> kommt. Leer lassen, um das Wurzelverzeichnis zu nutzen."
544
 
545
  #: includes/Dropbox/OAuth/Consumer/ConsumerAbstract.php:88
546
  #: methods/googledrive.php:63
547
  msgid "The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
548
+ msgstr "Die %s Authentifizierung konnte nicht weiterarbeiten, weil etwas anderes auf deine Seite dies behindert. Versuche deine anderen Plugins testweise zu deaktivieren und schalte auf ein Standardtheme um. (Um es genauer auszudrücken: Du suchst nach einer Komponente, die Ausgaben sendet (meist PHP Warnungen/Fehler), bevor die Seite beginnt. Das Ausschalten der Debugging-Einstellungen kann auch helfen)."
549
 
550
  #: admin.php:1360
551
  msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
552
+ msgstr "Dein PHP memory limit (eingestellt von deinem Webhoster) ist sehr gering. UpdraftPlus hat erfolglos versucht diesen Wert zu erhöhen. Dieses Plugin kann probleme mit einem memory limit unter 64MB haben - besonders, wenn du sehr große Dateien hochgeladen hast (womal es auch Seiten gibt, die mit 32MB auskommen - die Erfahrungen können schwanken)."
553
 
554
  #: addons/autobackup.php:221
555
  msgid "Backup succeeded <a href=\"#updraftplus-autobackup-log\" onclick=\"var s = document.getElementById('updraftplus-autobackup-log'); s.style.display = 'block';\">(view log...)</a> - now proceeding with the updates..."
556
+ msgstr "Sicherung erfolgt <a href=\"#updraftplus-autobackup-log\" onclick=\"var s = document.getElementById('updraftplus-autobackup-log'); s.style.display = 'block';\">(Log ansehen...)</a> - fahre nun mit Aktualisierungen fort..."
557
 
558
  #: addons/autobackup.php:298
559
  msgid "UpdraftPlus Automatic Backups"
602
 
603
  #: addons/autobackup.php:219
604
  msgid "Backup succeeded <a href=\"#updraftplus-autobackup-log\" onclick=\"jQuery('#updraftplus-autobackup-log').slideToggle();\">(view log...)</a> - now proceeding with the updates..."
605
+ msgstr "Sicherung ist erfolgt <a href=\"#updraftplus-autobackup-log\" onclick=\"jQuery('updraftplus-autobackup-log').slideToggle();\">(Log ansehen...)</a> - fahre nun mit Aktualisierungen fort ..."
606
 
607
  #: addons/autobackup.php:29 addons/autobackup.php:302
608
  msgid "Automatically backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
609
+ msgstr "Automatische Sicherungen (wenn notwendig) von Plugins, Themes und der WordPress-Datenbank mit UpdraftPlus anlegen, vor dem Aktualisieren"
610
 
611
  #: addons/autobackup.php:64
612
  msgid "Creating %s and database backup with UpdraftPlus..."
614
 
615
  #: addons/morefiles.php:94
616
  msgid "Unable to read zip file (%s) - could not pre-scan it to check its integrity."
617
+ msgstr "Konnte ZIP-Datei (%s) nicht lesen - konnte nicht Vorscannen, um die Integrität zu prüfen."
618
 
619
  #: addons/morefiles.php:99
620
  msgid "Unable to open zip file (%s) - could not pre-scan it to check its integrity."
621
+ msgstr "Konnte ZIP-Datei (%s) nicht öffnen - konnte nicht Vorscannen, um die Integrität zu prüfen."
622
 
623
  #: addons/morefiles.php:118 addons/morefiles.php:119
624
  msgid "This does not look like a valid WordPress core backup - the file %s was missing."
662
 
663
  #: admin.php:137 admin.php:287
664
  msgid "Be safe every time, without needing to remember - follow this link to learn more."
665
+ msgstr "Sei jeder Zeit sicher, ohne dich erinnern zu müssen - folge diesen Link um mehr zu erfahren."
666
 
667
  #: admin.php:272
668
  msgid "Update Plugin"
686
 
687
  #: admin.php:1345
688
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
689
+ msgstr "Wenn du diese Worte nach dem Fertigladen dieser Seite noch lesen kannst, liegt ein JavaScript oder jQuery Problem auf dieser Seite vor."
690
 
691
  #: admin.php:110
692
  msgid "Follow this link to attempt decryption and download the database file to your computer."
693
+ msgstr "Folge diesem Link um zu versuchen die Datenbank zu entschlüsseln und herunterzuladen."
694
 
695
  #: admin.php:111
696
  msgid "This decryption key will be attempted:"
710
 
711
  #: admin.php:105
712
  msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz)). However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
713
+ msgstr "Diese Datei scheint kein UpdraftPlus Sicherungs-Archiv zu sein (Dateien als .zip oder .gz, die folgendes Format haben: backup_(zeit)_(seitenname)_(code)_(type).(zip|gz)). Wie dem auch sei, UpdraftPlus-Archive sind normale zip-/SQL-Dateien, wenn du dir also sicher bist, dass die Datei im richtigen Format ist, kannst du es passend dem angegebenen Format umbennenen."
714
 
715
  #: admin.php:106
716
  msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
717
+ msgstr "(stelle sicher, dass du eine ZIP-Datei hochladen wolltest, die von UpdradftPlus erzeugt wurde)"
718
 
719
  #: admin.php:107
720
  msgid "Upload error:"
722
 
723
  #: admin.php:108
724
  msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
725
+ msgstr "DIese Datei scheint keine von UpdraftPlus verschlüsseltes Datenbank-Archiv zu sein (Dateiendung lautet .gz.crypt, Dateien haben folgendes Format: backup_(zeit)_seitenname)_(code)_db.crypt.gz))."
726
 
727
  #: admin.php:109
728
  msgid "Upload error"
1137
 
1138
  #: addons/sftp.php:27
1139
  msgid "Some servers advertise encrypted FTP as available, but then time-out (after a long time) when you attempt to use it. If you find this happenning, then go into the \"Expert Options\" (below) and turn off SSL there."
1140
+ msgstr "Manche Server geben verschlüsseltes FTP als unterstützt an, laufen jedoch in einen Time-Out beim Versuch dieses zu nutzen. Wenn dir das Passwort, die in \"Experten Einstellungen\" (unten) und schalte SSL dort aus."
1141
 
1142
  #: addons/sftp.php:64
1143
  msgid "Check your file permissions: Could not successfully create and enter directory:"
1145
 
1146
  #: methods/dropbox.php:273
1147
  msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support and ask for them to enable it."
1148
+ msgstr "Die PHP-Installation deines Webservers beinhaltet das Modul (%s) nicht. Kontakte deinen Webhoster und frage nach der Aktivierung davon."
1149
 
1150
  #: methods/s3.php:537
1151
  msgid "Please check your access credentials."
1169
 
1170
  #: restorer.php:752 admin.php:1000
1171
  msgid "To import an ordinary WordPress site into a multisite installation requires both the multisite and migrator add-ons."
1172
+ msgstr "Um eine normale WordPress-Seite in eine Multisite-Installation zu importieren, sind die Add-Ons multisite und migrator notwendig."
1173
 
1174
  #: restorer.php:758 admin.php:1008
1175
  msgid "Site information:"
1185
 
1186
  #: restorer.php:698
1187
  msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
1188
+ msgstr "Dein Datenbankbenutzer hat nicht das Recht Tabellen zu erzeugen. Wir versuchen eine Wiederherstellung durch leeren deiner Tabellen; das sollte funktionieren, solange a) beide WordPress-Versionen gleich sind und die gleiche Datenbankstruktur haben und b) Deine importierte Datenbank nicht Tabellen enthält, die nicht schon vorhanden sind."
1189
 
1190
  #: restorer.php:713
1191
  msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure"
1192
+ msgstr "Dein Datenbankbenutzer hat nicht das Recht Tabellen zu löschen. Wir werden versuchen die Tabellen einfach zu leeren; das sollte funktionieren, sofern die WordPress-Version und Datenbankstruktur die gleiche sind."
1193
 
1194
  #: restorer.php:35 admin.php:995
1195
  msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
methods/cloudfiles.php CHANGED
@@ -271,7 +271,7 @@ class UpdraftPlus_BackupModule_cloudfiles {
271
  return;
272
  }
273
 
274
- $path = untrailingslashit(get_option('updraft_cloudfiles_path'));
275
 
276
  // if (preg_match("#^([^/]+)/(.*)$#", $path, $bmatches)) {
277
  // $container = $bmatches[1];
@@ -364,7 +364,7 @@ class UpdraftPlus_BackupModule_cloudfiles {
364
  user: jQuery('#updraft_cloudfiles_user').val(),
365
  path: jQuery('#updraft_cloudfiles_path').val(),
366
  authurl: jQuery('#updraft_cloudfiles_authurl').val(),
367
- useservercerts: jQuery('#updraft_cloudfiles_useservercerts').val(),
368
  disableverify: jQuery('#updraft_ssl_disableverify').val()
369
  };
370
  jQuery.post(ajaxurl, data, function(response) {
271
  return;
272
  }
273
 
274
+ $path = untrailingslashit(UpdraftPlus_Options::get_updraft_option('updraft_cloudfiles_path'));
275
 
276
  // if (preg_match("#^([^/]+)/(.*)$#", $path, $bmatches)) {
277
  // $container = $bmatches[1];
364
  user: jQuery('#updraft_cloudfiles_user').val(),
365
  path: jQuery('#updraft_cloudfiles_path').val(),
366
  authurl: jQuery('#updraft_cloudfiles_authurl').val(),
367
+ useservercerts: jQuery('#updraft_ssl_useservercerts').val(),
368
  disableverify: jQuery('#updraft_ssl_disableverify').val()
369
  };
370
  jQuery.post(ajaxurl, data, function(response) {
methods/googledrive.php CHANGED
@@ -253,7 +253,7 @@ class UpdraftPlus_BackupModule_googledrive {
253
  continue;
254
  }
255
 
256
- $del == $this->gdocs->delete_resource($ids[$file]);
257
  if (is_wp_error($del)) {
258
  foreach ($del->get_error_messages() as $msg) $updraftplus->log("$file: Deletion failed: $msg");
259
  $ret = false;
253
  continue;
254
  }
255
 
256
+ $del = $this->gdocs->delete_resource($ids[$file]);
257
  if (is_wp_error($del)) {
258
  foreach ($del->get_error_messages() as $msg) $updraftplus->log("$file: Deletion failed: $msg");
259
  $ret = false;
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: Backup with UpdraftPlus, DavidAnderson
3
  Tags: backup, backups, restore, database, rackspace, amazon, s3, amazon s3, s3 compatible, dropbox, google drive, rackspace cloud files, rackspace, cloud files, dreamhost, dreamobjects, ftp, ftp backup, webdav, google cloud storage, cloudian, cloudn, connectria, constant cloud, eucalyptus, nifty, nimbula, back up, multisite, restoration, sftp, ftps, scp, migrate, duplicate, copy, updraft, schedule, mysql backup, database backup, db backup, website backup, wordpress backup, full backup
4
  Requires at least: 3.2
5
- Tested up to: 3.7
6
- Stable tag: 1.7.40
7
  Author URI: http://updraftplus.com
8
  Donate link: http://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
@@ -16,7 +16,7 @@ Easy and complete backups + restoration. Manual or automated backups (backup to
16
 
17
  <strong>Top-quality:</strong> UpdraftPlus is the <a href="http://rankwp.com/plugins/updraftplus">highest-ranking backup plugin on rankwp.com</a> (ranks 16th out of 28,000 WordPress plugins for quality on rankwp.com - last checked 28th September 2013).
18
 
19
- <strong>Tens of thousands of users:</strong> widely tested and reliable (over 395,000 downloads). Ranks in the top 100 most used of all WordPress plugins on rankwp.com. Millions of backups completed!
20
 
21
  * Supports WordPress backups to Amazon S3 (or compatible), Dropbox, Rackspace Cloud Files, Google Drive, Google Cloud Storage, DreamHost DreamObjects, FTP and email. Also (via an add-on) FTP over SSL, SFTP, SCP and WebDAV. (Note: Microsoft forbid SkyDrive to be used by backup software). Some examples of S3-compatible providers: Cloudian, Connectria, Constant, Eucalyptus, Nifty, Nimbula, Cloudn.
22
  * Quick restore (both file and database backups)
@@ -132,10 +132,12 @@ Thanks for asking - yes, I have. Check out my profile page - http://profiles.wor
132
 
133
  The <a href="http://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
134
 
135
- = 1.7.40 - 2013/11/15 =
136
 
137
  * FIX: Work around bug in some old PHP versions on Windows when creating database dump
 
138
  * TWEAK: Log PHP notices in the log file
 
139
 
140
  = 1.7.39 - 2013/11/11 =
141
 
@@ -661,4 +663,4 @@ We recognise and thank the following for code and/or libraries used and/or modif
661
  Furthermore, reliance upon any non-English translation is at your own risk. UpdraftPlus can give no guarantees that translations from the original English are accurate.
662
 
663
  == Upgrade Notice ==
664
- * 1.7.40: Work around bug in old PHP versions on Windows when creating database dump
2
  Contributors: Backup with UpdraftPlus, DavidAnderson
3
  Tags: backup, backups, restore, database, rackspace, amazon, s3, amazon s3, s3 compatible, dropbox, google drive, rackspace cloud files, rackspace, cloud files, dreamhost, dreamobjects, ftp, ftp backup, webdav, google cloud storage, cloudian, cloudn, connectria, constant cloud, eucalyptus, nifty, nimbula, back up, multisite, restoration, sftp, ftps, scp, migrate, duplicate, copy, updraft, schedule, mysql backup, database backup, db backup, website backup, wordpress backup, full backup
4
  Requires at least: 3.2
5
+ Tested up to: 3.8
6
+ Stable tag: 1.7.41
7
  Author URI: http://updraftplus.com
8
  Donate link: http://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
16
 
17
  <strong>Top-quality:</strong> UpdraftPlus is the <a href="http://rankwp.com/plugins/updraftplus">highest-ranking backup plugin on rankwp.com</a> (ranks 16th out of 28,000 WordPress plugins for quality on rankwp.com - last checked 28th September 2013).
18
 
19
+ <strong>Tens of thousands of users:</strong> widely tested and reliable (over 400,000 downloads). Ranks in the top 100 most used of all WordPress plugins on rankwp.com. Millions of backups completed!
20
 
21
  * Supports WordPress backups to Amazon S3 (or compatible), Dropbox, Rackspace Cloud Files, Google Drive, Google Cloud Storage, DreamHost DreamObjects, FTP and email. Also (via an add-on) FTP over SSL, SFTP, SCP and WebDAV. (Note: Microsoft forbid SkyDrive to be used by backup software). Some examples of S3-compatible providers: Cloudian, Connectria, Constant, Eucalyptus, Nifty, Nimbula, Cloudn.
22
  * Quick restore (both file and database backups)
132
 
133
  The <a href="http://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
134
 
135
+ = 1.7.41 - 2013/11/16 =
136
 
137
  * FIX: Work around bug in some old PHP versions on Windows when creating database dump
138
+ * FIX: If binary mysqldump failed, then retry
139
  * TWEAK: Log PHP notices in the log file
140
+ * TWEAK: Allow primitive exclusion based on filename suffixes
141
 
142
  = 1.7.39 - 2013/11/11 =
143
 
663
  Furthermore, reliance upon any non-English translation is at your own risk. UpdraftPlus can give no guarantees that translations from the original English are accurate.
664
 
665
  == Upgrade Notice ==
666
+ * 1.7.41: Work around two bugs in mysqldump and in old PHP versions on Windows when creating database dump
restorer.php CHANGED
@@ -130,8 +130,12 @@ class Updraft_Restorer extends WP_Upgrader {
130
 
131
  if (empty($upgrade_files)) return true;
132
 
 
 
133
  foreach ( $upgrade_files as $file => $filestruc ) {
134
 
 
 
135
  // Correctly restore files in 'others' in no directory that were wrongly backed up in versions 1.4.0 - 1.4.48
136
  if (('others' == $type || 'wpcore' == $type ) && preg_match('/^([\-_A-Za-z0-9]+\.php)$/', $file, $matches) && $wp_filesystem->exists($working_dir . "/$file/$file")) {
137
  if ('others' == $type) {
@@ -147,15 +151,19 @@ class Updraft_Restorer extends WP_Upgrader {
147
  $wp_filesystem->rmdir($working_dir . "/$tmp_file", false);
148
  }
149
 
150
- if ('wpcore' == $type && 'wp-config.php' == $file) {
151
  if (empty($_POST['updraft_restorer_wpcore_includewpconfig'])) {
152
  _e('wp-config.php from backup: will restore as wp-config-backup.php', 'updraftplus');
153
  $wp_filesystem->move($working_dir . "/$file", $working_dir . "/wp-config-backup.php", true);
154
  $file = "wp-config-backup.php";
 
155
  } else {
156
  _e('wp-config.php from backup: restoring (as per user\'s request)', 'updraftplus');
157
  }
158
  echo '<br>';
 
 
 
159
  }
160
 
161
  # Sanity check (should not be possible as these were excluded at backup time)
130
 
131
  if (empty($upgrade_files)) return true;
132
 
133
+ $wpcore_config_moved = false;
134
+
135
  foreach ( $upgrade_files as $file => $filestruc ) {
136
 
137
+ if (empty($file)) continue;
138
+
139
  // Correctly restore files in 'others' in no directory that were wrongly backed up in versions 1.4.0 - 1.4.48
140
  if (('others' == $type || 'wpcore' == $type ) && preg_match('/^([\-_A-Za-z0-9]+\.php)$/', $file, $matches) && $wp_filesystem->exists($working_dir . "/$file/$file")) {
141
  if ('others' == $type) {
151
  $wp_filesystem->rmdir($working_dir . "/$tmp_file", false);
152
  }
153
 
154
+ if ('wp-config.php' == $file && 'wpcore' == $type) {
155
  if (empty($_POST['updraft_restorer_wpcore_includewpconfig'])) {
156
  _e('wp-config.php from backup: will restore as wp-config-backup.php', 'updraftplus');
157
  $wp_filesystem->move($working_dir . "/$file", $working_dir . "/wp-config-backup.php", true);
158
  $file = "wp-config-backup.php";
159
+ $wpcore_config_moved = true;
160
  } else {
161
  _e('wp-config.php from backup: restoring (as per user\'s request)', 'updraftplus');
162
  }
163
  echo '<br>';
164
+ } elseif ('wpcore' == $type && 'wp-config-backup.php' == $file && $wpcore_config_moved) {
165
+ # The file is already gone; nothing to do
166
+ continue;
167
  }
168
 
169
  # Sanity check (should not be possible as these were excluded at backup time)
updraftplus.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: UpdraftPlus - Backup/Restore
4
  Plugin URI: http://updraftplus.com
5
  Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
6
  Author: UpdraftPlus.Com, DavidAnderson
7
- Version: 1.7.40
8
  Donate link: http://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
10
  Text Domain: updraftplus
@@ -17,6 +17,7 @@ TODO - some of these are out of date/done, needs pruning
17
  // Change add-ons screen, to be less confusing for people who haven't yet updated but have connected
18
  // Change migrate window: 1) Retain link to article 2) Have selector to choose which backup set to migrate - or a fresh one 3) Have option for FTP/SFTP/SCP despatch 4) Have big "Go" button. Have some indication of what happens next. Test the login first. Have the remote site auto-scan its directory + pick up new sets. Have a way of querying the remote site for its UD-dir. Have a way of saving the settings as a 'profile'. Or just save the last set of settings (since mostly will be just one place to send to). Implement an HTTP/JSON method for sending files too.
19
  // Place in maintenance mode during restore - ?
 
20
  // Dates in the progress box are apparently untranslated
21
  // Add-on descriptions are not internationalised
22
  // http://www.phpclasses.org/package/8269-PHP-Send-MySQL-database-backup-files-to-Ubuntu-One.html
@@ -162,7 +163,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
162
 
163
  define('UPDRAFTPLUS_DIR', dirname(__FILE__));
164
  define('UPDRAFTPLUS_URL', plugins_url('', __FILE__));
165
- define('UPDRAFT_DEFAULT_OTHERS_EXCLUDE','upgrade,cache,updraft,backup*');
166
 
167
  # The following can go in your wp-config.php
168
  if (!defined('UPDRAFTPLUS_ZIP_EXECUTABLE')) define('UPDRAFTPLUS_ZIP_EXECUTABLE', "/usr/bin/zip,/bin/zip,/usr/local/bin/zip,/usr/sfw/bin/zip,/usr/xdg4/bin/zip,/opt/bin/zip");
@@ -1281,6 +1282,7 @@ class UpdraftPlus {
1281
  $this->log("There were no more files that needed uploading; backup job is complete");
1282
  // No email, as the user probably already got one if something else completed the run
1283
  $this->backup_finish($next_resumption, true, false, $resumption_no);
 
1284
  return;
1285
  } else {
1286
  $this->log("Requesting upload of the files that have not yet been successfully uploaded (".count($undone_files).")");
@@ -1823,13 +1825,18 @@ class UpdraftPlus {
1823
  $this->log("finding files: $entry: skipping: excluded by options");
1824
  } else {
1825
  $add_to_list = true;
1826
- // Now deal with entries in $skip_these_dirs ending in *
1827
  foreach ($skip_these_dirs as $skip => $sind) {
1828
- if ('*' == substr($skip, -1, 1)) {
1829
  if (substr($entry, 0, strlen($skip)-1) == substr($skip, 0, strlen($skip)-1)) {
1830
  $this->log("finding files: $entry: skipping: excluded by options (glob)");
1831
  $add_to_list = false;
1832
  }
 
 
 
 
 
1833
  }
1834
  }
1835
  if ($add_to_list) {
4
  Plugin URI: http://updraftplus.com
5
  Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
6
  Author: UpdraftPlus.Com, DavidAnderson
7
+ Version: 1.7.41
8
  Donate link: http://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
10
  Text Domain: updraftplus
17
  // Change add-ons screen, to be less confusing for people who haven't yet updated but have connected
18
  // Change migrate window: 1) Retain link to article 2) Have selector to choose which backup set to migrate - or a fresh one 3) Have option for FTP/SFTP/SCP despatch 4) Have big "Go" button. Have some indication of what happens next. Test the login first. Have the remote site auto-scan its directory + pick up new sets. Have a way of querying the remote site for its UD-dir. Have a way of saving the settings as a 'profile'. Or just save the last set of settings (since mostly will be just one place to send to). Implement an HTTP/JSON method for sending files too.
19
  // Place in maintenance mode during restore - ?
20
+ // Exclude backwpup stuff from backup (in wp-content/uploads/backwpup*)
21
  // Dates in the progress box are apparently untranslated
22
  // Add-on descriptions are not internationalised
23
  // http://www.phpclasses.org/package/8269-PHP-Send-MySQL-database-backup-files-to-Ubuntu-One.html
163
 
164
  define('UPDRAFTPLUS_DIR', dirname(__FILE__));
165
  define('UPDRAFTPLUS_URL', plugins_url('', __FILE__));
166
+ define('UPDRAFT_DEFAULT_OTHERS_EXCLUDE','upgrade,cache,updraft,backup*,*backups');
167
 
168
  # The following can go in your wp-config.php
169
  if (!defined('UPDRAFTPLUS_ZIP_EXECUTABLE')) define('UPDRAFTPLUS_ZIP_EXECUTABLE', "/usr/bin/zip,/bin/zip,/usr/local/bin/zip,/usr/sfw/bin/zip,/usr/xdg4/bin/zip,/opt/bin/zip");
1282
  $this->log("There were no more files that needed uploading; backup job is complete");
1283
  // No email, as the user probably already got one if something else completed the run
1284
  $this->backup_finish($next_resumption, true, false, $resumption_no);
1285
+ restore_error_handler();
1286
  return;
1287
  } else {
1288
  $this->log("Requesting upload of the files that have not yet been successfully uploaded (".count($undone_files).")");
1825
  $this->log("finding files: $entry: skipping: excluded by options");
1826
  } else {
1827
  $add_to_list = true;
1828
+ // Now deal with entries in $skip_these_dirs ending in * or starting with *
1829
  foreach ($skip_these_dirs as $skip => $sind) {
1830
+ if ('*' == substr($skip, -1, 1) && strlen($skip) > 1) {
1831
  if (substr($entry, 0, strlen($skip)-1) == substr($skip, 0, strlen($skip)-1)) {
1832
  $this->log("finding files: $entry: skipping: excluded by options (glob)");
1833
  $add_to_list = false;
1834
  }
1835
+ } elseif ('*' == substr($skip, 0, 1) && strlen($skip) > 1) {
1836
+ if (strlen($entry) >= strlen($skip)-1 && substr($entry, (strlen($skip)-1)*-1) == substr($skip, 1)) {
1837
+ $this->log("finding files: $entry: skipping: excluded by options (glob)");
1838
+ $add_to_list = false;
1839
+ }
1840
  }
1841
  }
1842
  if ($add_to_list) {