Version Description
- 05/06/2013 =
- FEATURE: New "Migrator" add-on for moving sites from one WordPress install to another (http://updraftplus.com/shop/)
- FEATURE: The "More files" add-on can now back up any files from anywhere on your filesystem (not just parts of WordPress)
- FEATURE: The "More files" add-on can now exclude specified directories from the backup of WordPress core
- FEATURE: Dropbox and Google Drive now check available quota before uploading
- FEATURE: Nederlands / Dutch (nl_NL) translation: thanks to Hans van der Vlist - hansvandervlist@gmail.com
- FEATURE: The SFTP/FTPS add-on now supports implicit encryption (so now both explicit + implicit are supported)
- FIX: Google Drive now requires additional permissions to download your files - you will need to re-authenticate if you are downloading or restoring.
- FIX: Fix serious corruption issue in larger Rackspace Cloud Files backups (fixed a bug in Rackspace's Cloud Files library)
- FIX: Fix mcrypt call in Dropbox module to be compatible with PHP 5.2 on Windows, and with ancient FreeBSD versions which have no /dev/urandom
- FIX: Allow top-level "Restore" button even if no backup sets currently known (to allow uploading some)
- FIX: Fixed issues hindering restoration on web hosting setups with file permissions that invoked WP's remote filesystem methods
- TWEAK: Database backup now includes more info about original WP install (e.g. WP/PHP versions)
- TWEAK: The "More files" add-on now allows the user to choose whether to restore wp-config.php or not (and gives help)
- TWEAK: Added an approximate expected row count when beginning to dump out a table
- TWEAK: Remove the Google Drive URL prefix automatically for those who don't spot the instruction to do so
Download this release
Release Info
Developer | DavidAnderson |
Plugin | UpdraftPlus WordPress Backup Plugin |
Version | 1.6.1 |
Comparing to | |
See all releases |
Code changes from version 1.5.22 to 1.6.1
- admin.php +147 -26
- backup.php +2 -2
- includes/Dropbox/OAuth/Storage/Encrypter.php +3 -1
- includes/ftp.class.php +9 -6
- includes/jquery-ui-1.8.22.custom.css +1 -1
- includes/updraft-restorer.php +65 -26
- languages/updraftplus.pot +615 -398
- methods/cloudfiles.php +1 -1
- methods/dropbox.php +50 -2
- methods/ftp.php +28 -9
- methods/googledrive.php +82 -21
- methods/s3.php +1 -1
- options.php +4 -1
- readme.txt +34 -8
- updraftplus.php +61 -13
admin.php
CHANGED
@@ -140,6 +140,10 @@ class UpdraftPlus_Admin {
|
|
140 |
|
141 |
}
|
142 |
|
|
|
|
|
|
|
|
|
143 |
function disk_space_check($space) {
|
144 |
global $updraftplus;
|
145 |
$updraft_dir = $updraftplus->backups_dir_location();
|
@@ -183,7 +187,7 @@ class UpdraftPlus_Admin {
|
|
183 |
}
|
184 |
|
185 |
function show_admin_warning_googledrive() {
|
186 |
-
$this->show_admin_warning('<strong>'.__('UpdraftPlus notice:','updraftplus').'</strong> <a href="options-general.php?page=updraftplus&action=updraftmethod-googledrive-auth&updraftplus_googleauth=doit"
|
187 |
}
|
188 |
|
189 |
// This options filter removes ABSPATH off the front of updraft_dir, if it is given absolutely and contained within it
|
@@ -323,7 +327,7 @@ class UpdraftPlus_Admin {
|
|
323 |
|
324 |
if (!$service) $service = UpdraftPlus_Options::get_updraft_option('updraft_service');
|
325 |
|
326 |
-
$updraftplus->log("Requested file from remote service: $service
|
327 |
|
328 |
$method_include = UPDRAFTPLUS_DIR.'/methods/'.$service.'.php';
|
329 |
if (file_exists($method_include)) require_once($method_include);
|
@@ -599,8 +603,8 @@ class UpdraftPlus_Admin {
|
|
599 |
|
600 |
/*
|
601 |
we use request here because the initial restore is triggered by a POSTed form. we then may need to obtain credentials
|
602 |
-
for the WP_Filesystem. to do this WP outputs a form
|
603 |
-
passed back in as GET parameters. REQUEST covers both GET and POST so this
|
604 |
*/
|
605 |
if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'updraft_restore' && isset($_REQUEST['backup_timestamp'])) {
|
606 |
$backup_success = $this->restore_backup($_REQUEST['backup_timestamp']);
|
@@ -651,8 +655,9 @@ class UpdraftPlus_Admin {
|
|
651 |
if(isset($_GET['action']) && $_GET['action'] == 'updraft_create_backup_dir') {
|
652 |
if(!$this->create_backup_dir()) {
|
653 |
echo '<p>'.__('Backup directory could not be created','updraftplus').'...</p><br/>';
|
|
|
|
|
654 |
}
|
655 |
-
echo '<p>'.__('Backup directory successfully created.','updraftplus').'</p><br/>';
|
656 |
echo '<b>'.__('Actions','updraftplus').':</b> <a href="options-general.php?page=updraftplus">'.__('Return to UpdraftPlus Configuration','updraftplus').'</a>';
|
657 |
return;
|
658 |
}
|
@@ -673,7 +678,7 @@ class UpdraftPlus_Admin {
|
|
673 |
if(isset($_POST['action']) && $_POST['action'] == 'updraft_backup_debug_all') { $updraftplus->boot_backup(true,true); }
|
674 |
elseif (isset($_POST['action']) && $_POST['action'] == 'updraft_backup_debug_db') { $updraftplus->backup_db(); }
|
675 |
elseif (isset($_POST['action']) && $_POST['action'] == 'updraft_wipesettings') {
|
676 |
-
$settings = array('updraft_interval', 'updraft_interval_database', 'updraft_retain', 'updraft_retain_db', 'updraft_encryptionphrase', 'updraft_service', 'updraft_dropbox_appkey', 'updraft_dropbox_secret', 'updraft_googledrive_clientid', 'updraft_googledrive_secret', 'updraft_googledrive_remotepath', 'updraft_ftp_login', 'updraft_ftp_pass', 'updraft_ftp_remote_path', 'updraft_server_address', 'updraft_dir', 'updraft_email', 'updraft_delete_local', 'updraft_debug_mode', 'updraft_include_plugins', 'updraft_include_themes', 'updraft_include_uploads', 'updraft_include_others', 'updraft_include_wpcore',
|
677 |
'updraft_include_blogs', 'updraft_include_mu-plugins', 'updraft_include_others_exclude', 'updraft_lastmessage', 'updraft_googledrive_clientid', 'updraft_googledrive_token', 'updraft_dropboxtk_request_token', 'updraft_dropboxtk_access_token', 'updraft_dropbox_folder', 'updraft_last_backup', 'updraft_starttime_files', 'updraft_starttime_db', 'updraft_sftp_settings', 'updraft_disable_ping', 'updraft_cloudfiles_user', 'updraft_cloudfiles_apikey', 'updraft_cloudfiles_path', 'updraft_cloudfiles_authurl', 'updraft_ssl_useservercerts', 'updraft_ssl_disableverify');
|
678 |
foreach ($settings as $s) {
|
679 |
UpdraftPlus_Options::delete_updraft_option($s);
|
@@ -770,7 +775,7 @@ class UpdraftPlus_Admin {
|
|
770 |
?>
|
771 |
|
772 |
<tr>
|
773 |
-
<th><?php _e('Next scheduled backups','updraftplus');?>:</th>
|
774 |
<td>
|
775 |
<div style="width: 76px; float:left;"><?php _e('Files','updraftplus'); ?>:</div><div style="color:blue; float:left;"><?php echo $next_scheduled_backup?></div>
|
776 |
<div style="width: 76px; clear: left; float:left;"><?php _e('Database','updraftplus');?>: </div><div style="color:blue; float:left;"><?php echo $next_scheduled_backup_database?></div>
|
@@ -789,9 +794,8 @@ class UpdraftPlus_Admin {
|
|
789 |
<?php
|
790 |
$backup_history = UpdraftPlus_Options::get_updraft_option('updraft_backup_history');
|
791 |
$backup_history = (is_array($backup_history))?$backup_history:array();
|
792 |
-
$restore_disabled = (count($backup_history) == 0) ? 'disabled="disabled"' : "";
|
793 |
?>
|
794 |
-
<input type="button" class="button-primary"
|
795 |
</div>
|
796 |
</div>
|
797 |
</div>
|
@@ -814,6 +818,9 @@ class UpdraftPlus_Admin {
|
|
814 |
<li><strong><?php _e('Downloading','updraftplus');?>:</strong> <?php _e("Pressing a button for Database/Plugins/Themes/Uploads/Others will make UpdraftPlus try to bring the backup file back from the remote storage (if any - e.g. Amazon S3, Dropbox, Google Drive, FTP) to your webserver. Then you will be allowed to download it to your computer. If the fetch from the remote storage stops progressing (wait 30 seconds to make sure), then press again to resume. Remember that you can also visit the cloud storage vendor's website directly.",'updraftplus');?></li>
|
815 |
<li><strong><?php _e('Restoring','updraftplus');?>:</strong> <?php _e("Press the button for the backup you wish to restore. If your site is large and you are using remote storage, then you should first click on each entity in order to retrieve it back to the webserver. This will prevent time-outs from occuring during the restore process itself.",'updraftplus');?> <?php _e('More tasks:','updraftplus');?> <a href="#" onclick="jQuery('#updraft-plupload-modal').slideToggle(); return false;"><?php _e('upload backup files','updraftplus');?></a> | <a href="#" onclick="updraft_updatehistory(1); return false;" title="<?php _e('Press here to look inside your UpdraftPlus directory (in your web hosting space) for any new backup sets that you have uploaded. The location of this directory is set in the expert settings, below.','updraftplus'); ?>"><?php _e('rescan folder for new backup sets','updraftplus');?></a></li>
|
816 |
<li><strong><?php _e('Opera web browser','updraftplus');?>:</strong> <?php _e('If you are using this, then turn Turbo/Road mode off.','updraftplus');?></li>
|
|
|
|
|
|
|
817 |
<li title="<?php _e('This is a count of the contents of your Updraft directory','updraftplus');?>"><strong><?php _e('Web-server disk space in use by UpdraftPlus','updraftplus');?>:</strong> <span id="updraft_diskspaceused"><em>(calculating...)</em></span> <a href="#" onclick="updraftplus_diskspace(); return false;"><?php _e('refresh','updraftplus');?></a></li></ul>
|
818 |
|
819 |
<div id="updraft-plupload-modal" title="<?php _e('UpdraftPlus - Upload backup files','updraftplus'); ?>" style="width: 75%; margin: 16px; display:none; margin-left: 100px;">
|
@@ -932,7 +939,7 @@ class UpdraftPlus_Admin {
|
|
932 |
|
933 |
<div id="updraft-restore-modal" title="UpdraftPlus - <?php _e('Restore backup','updraftplus');?>">
|
934 |
<p><strong><?php _e('Restore backup from','updraftplus');?>:</strong> <span id="updraft_restore_date"></span></p>
|
935 |
-
<p><?php _e("Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection",'updraftplus');?>
|
936 |
<form id="updraft_restore_form" method="post">
|
937 |
<fieldset>
|
938 |
<input type="hidden" name="action" value="updraft_restore">
|
@@ -946,10 +953,48 @@ class UpdraftPlus_Admin {
|
|
946 |
|
947 |
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
948 |
foreach ($backupable_entities as $type => $info) {
|
949 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
950 |
}
|
951 |
?>
|
952 |
-
<div><input id="updraft_restore_db" type="checkbox" name="updraft_restore[]" value="db"> <label for="updraft_restore_db"><?php _e('Database','updraftplus'); ?></label><br
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
953 |
</fieldset>
|
954 |
</form>
|
955 |
<p><em><a href="http://updraftplus.com/faqs/what-should-i-understand-before-undertaking-a-restoration/" target="_new"><?php _e('Do read this helpful article of useful things to know before restoring.','updraftplus');?></a></em></p>
|
@@ -958,7 +1003,7 @@ class UpdraftPlus_Admin {
|
|
958 |
<div id="updraft-backupnow-modal" title="UpdraftPlus - <?php _e('Perform a backup now','updraftplus'); ?>">
|
959 |
<p><?php _e("This will schedule a one-time backup. To proceed, press 'Backup Now', then wait 10 seconds, then visit any page on your site. WordPress should then start the backup running in the background.",'updraftplus');?></p>
|
960 |
|
961 |
-
<form id="updraft-backupnow-form" method="post"
|
962 |
<input type="hidden" name="action" value="updraft_backup" />
|
963 |
</form>
|
964 |
|
@@ -1043,7 +1088,8 @@ class UpdraftPlus_Admin {
|
|
1043 |
exit;
|
1044 |
}
|
1045 |
|
1046 |
-
$
|
|
|
1047 |
|
1048 |
$return_code = true;
|
1049 |
|
@@ -1051,7 +1097,7 @@ class UpdraftPlus_Admin {
|
|
1051 |
if (substr($item['name'], -4, 4) == "-old") {
|
1052 |
//recursively delete
|
1053 |
print "<strong>".__('Delete','updraftplus').": </strong>".htmlspecialchars($item['name']).": ";
|
1054 |
-
if(!$wp_filesystem->delete(
|
1055 |
$return_code = false;
|
1056 |
print "<strong>Failed</strong><br>";
|
1057 |
} else {
|
@@ -1073,7 +1119,8 @@ class UpdraftPlus_Admin {
|
|
1073 |
}
|
1074 |
|
1075 |
$updraft_dir = $updraftplus->backups_dir_location();
|
1076 |
-
|
|
|
1077 |
$updraft_dir = ($updraft_dir)?$updraft_dir:$default_backup_dir;
|
1078 |
|
1079 |
if (!$wp_filesystem->mkdir($updraft_dir, 0775)) return false;
|
@@ -1189,9 +1236,37 @@ class UpdraftPlus_Admin {
|
|
1189 |
foreach ($backupable_entities as $key => $info) {
|
1190 |
$included = (UpdraftPlus_Options::get_updraft_option("updraft_include_$key", apply_filters("updraftplus_defaultoption_include_".$key, true))) ? 'checked="checked"' : "";
|
1191 |
if ('others' == $key) {
|
1192 |
-
?><input id="updraft_include_others" type="checkbox" name="updraft_include_others" value="1" <?php echo $included; ?> /> <label for="updraft_include_<?php echo $key ?>"><?php echo __('Any other directories found inside wp-content
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1193 |
} else {
|
1194 |
echo "<input id=\"updraft_include_$key\" type=\"checkbox\" name=\"updraft_include_$key\" value=\"1\" $included /><label for=\"updraft_include_$key\"> ".$info['description']."</label><br>";
|
|
|
1195 |
}
|
1196 |
}
|
1197 |
?>
|
@@ -1340,7 +1415,7 @@ class UpdraftPlus_Admin {
|
|
1340 |
updraft_check_same_times();
|
1341 |
|
1342 |
jQuery( "#updraft-restore-modal" ).dialog({
|
1343 |
-
autoOpen: false, height:
|
1344 |
buttons: {
|
1345 |
'<?php _e('Restore','updraftplus');?>': function() {
|
1346 |
var anyselected = 0;
|
@@ -1560,9 +1635,10 @@ class UpdraftPlus_Admin {
|
|
1560 |
<?php
|
1561 |
foreach ($backupable_entities as $type => $info) {
|
1562 |
echo '<td>';
|
|
|
|
|
1563 |
if (isset($value[$type])) {
|
1564 |
$entities .= '/'.$type.'/';
|
1565 |
-
$sdescrip = preg_replace('/ \(.*\)$/', '', $info['description']);
|
1566 |
?>
|
1567 |
<form id="uddownloadform_<?php echo $type.'_'.$key;?>" action="admin-ajax.php" onsubmit="return updraft_downloader('uddlstatus_', '<?php echo $key."', '".$type;?>')" method="post">
|
1568 |
<?php wp_nonce_field('updraftplus_download'); ?>
|
@@ -1571,7 +1647,7 @@ class UpdraftPlus_Admin {
|
|
1571 |
<input type="hidden" name="timestamp" value="<?php echo $key?>" />
|
1572 |
<input type="submit" title="<?php echo __('Press here to download','updraftplus').' '.strtolower($info['description']); ?>" value="<?php echo $sdescrip;?>" />
|
1573 |
</form>
|
1574 |
-
<?php } else { printf(_x('(No %s)','Message shown when no such object is available','updraftplus'), preg_replace('/\s\(.{12,}\)/', '', strtolower($
|
1575 |
</td>
|
1576 |
<?php }; ?>
|
1577 |
|
@@ -1589,20 +1665,25 @@ class UpdraftPlus_Admin {
|
|
1589 |
<form method="post" action="">
|
1590 |
<input type="hidden" name="backup_timestamp" value="<?php echo $key;?>">
|
1591 |
<input type="hidden" name="action" value="updraft_restore" />
|
1592 |
-
<?php if ($entities) { ?><button title="<?php _e('After pressing this button, you will be given the option to choose which components you wish to restore','updraftplus');?>" type="button"
|
1593 |
</form>
|
1594 |
</td>
|
1595 |
</tr>
|
1596 |
<script>
|
1597 |
-
function
|
|
|
1598 |
jQuery('input[name="updraft_restore[]"]').each(function(x,y){
|
1599 |
var entity = jQuery(y).val();
|
1600 |
if (entities.indexOf('/'+entity+'/') != -1) {
|
1601 |
jQuery(y).removeAttr('disabled').parent().show();
|
|
|
|
|
1602 |
} else {
|
1603 |
jQuery(y).attr('disabled','disabled').parent().hide();
|
1604 |
}
|
1605 |
});
|
|
|
|
|
1606 |
}
|
1607 |
</script>
|
1608 |
<?php }
|
@@ -1676,7 +1757,23 @@ class UpdraftPlus_Admin {
|
|
1676 |
return false;
|
1677 |
}
|
1678 |
|
1679 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1680 |
WP_Filesystem($credentials);
|
1681 |
if ( $wp_filesystem->errors->get_error_code() ) {
|
1682 |
foreach ( $wp_filesystem->errors->get_error_messages() as $message )
|
@@ -1691,12 +1788,31 @@ class UpdraftPlus_Admin {
|
|
1691 |
|
1692 |
$service = (isset($backup_history[$timestamp]['service'])) ? $backup_history[$timestamp]['service'] : false;
|
1693 |
|
1694 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1695 |
echo '<p>'.__('ABORT: Could not find the information on which entities to restore.', 'updraftplus').'</p>';
|
|
|
1696 |
return false;
|
1697 |
}
|
1698 |
|
1699 |
-
|
|
|
|
|
|
|
1700 |
|
1701 |
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
1702 |
|
@@ -1705,6 +1821,8 @@ class UpdraftPlus_Admin {
|
|
1705 |
|
1706 |
if (!isset($backupable_entities[$type]) && 'db' != $type) continue;
|
1707 |
|
|
|
|
|
1708 |
if ($type == 'db') {
|
1709 |
echo "<h2>".__('Database','updraftplus')."</h2>";
|
1710 |
} else {
|
@@ -1742,7 +1860,10 @@ class UpdraftPlus_Admin {
|
|
1742 |
if(!class_exists('WP_Upgrader')) require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
|
1743 |
require_once(UPDRAFTPLUS_DIR.'/includes/updraft-restorer.php');
|
1744 |
$restorer = new Updraft_Restorer();
|
1745 |
-
|
|
|
|
|
|
|
1746 |
|
1747 |
if(is_wp_error($val)) {
|
1748 |
foreach ($val->get_error_messages() as $msg) {
|
140 |
|
141 |
}
|
142 |
|
143 |
+
function googledrive_remove_folderurlprefix($input) {
|
144 |
+
return str_replace('https://drive.google.com/#folders/', '', $input);
|
145 |
+
}
|
146 |
+
|
147 |
function disk_space_check($space) {
|
148 |
global $updraftplus;
|
149 |
$updraft_dir = $updraftplus->backups_dir_location();
|
187 |
}
|
188 |
|
189 |
function show_admin_warning_googledrive() {
|
190 |
+
$this->show_admin_warning('<strong>'.__('UpdraftPlus notice:','updraftplus').'</strong> <a href="options-general.php?page=updraftplus&action=updraftmethod-googledrive-auth&updraftplus_googleauth=doit">'.sprintf(__('Click here to authenticate your %s account (you will not be able to back up to %s without it).','updraftplus'),'Google Drive','Google Drive').'</a>');
|
191 |
}
|
192 |
|
193 |
// This options filter removes ABSPATH off the front of updraft_dir, if it is given absolutely and contained within it
|
327 |
|
328 |
if (!$service) $service = UpdraftPlus_Options::get_updraft_option('updraft_service');
|
329 |
|
330 |
+
$updraftplus->log("Requested file from remote service: $service: $file");
|
331 |
|
332 |
$method_include = UPDRAFTPLUS_DIR.'/methods/'.$service.'.php';
|
333 |
if (file_exists($method_include)) require_once($method_include);
|
603 |
|
604 |
/*
|
605 |
we use request here because the initial restore is triggered by a POSTed form. we then may need to obtain credentials
|
606 |
+
for the WP_Filesystem. to do this WP outputs a form, but we don't pass our parameters via that. So the values are
|
607 |
+
passed back in as GET parameters. REQUEST covers both GET and POST so this logic works.
|
608 |
*/
|
609 |
if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'updraft_restore' && isset($_REQUEST['backup_timestamp'])) {
|
610 |
$backup_success = $this->restore_backup($_REQUEST['backup_timestamp']);
|
655 |
if(isset($_GET['action']) && $_GET['action'] == 'updraft_create_backup_dir') {
|
656 |
if(!$this->create_backup_dir()) {
|
657 |
echo '<p>'.__('Backup directory could not be created','updraftplus').'...</p><br/>';
|
658 |
+
} else {
|
659 |
+
echo '<p>'.__('Backup directory successfully created.','updraftplus').'</p><br/>';
|
660 |
}
|
|
|
661 |
echo '<b>'.__('Actions','updraftplus').':</b> <a href="options-general.php?page=updraftplus">'.__('Return to UpdraftPlus Configuration','updraftplus').'</a>';
|
662 |
return;
|
663 |
}
|
678 |
if(isset($_POST['action']) && $_POST['action'] == 'updraft_backup_debug_all') { $updraftplus->boot_backup(true,true); }
|
679 |
elseif (isset($_POST['action']) && $_POST['action'] == 'updraft_backup_debug_db') { $updraftplus->backup_db(); }
|
680 |
elseif (isset($_POST['action']) && $_POST['action'] == 'updraft_wipesettings') {
|
681 |
+
$settings = array('updraft_interval', 'updraft_interval_database', 'updraft_retain', 'updraft_retain_db', 'updraft_encryptionphrase', 'updraft_service', 'updraft_dropbox_appkey', 'updraft_dropbox_secret', 'updraft_googledrive_clientid', 'updraft_googledrive_secret', 'updraft_googledrive_remotepath', 'updraft_ftp_login', 'updraft_ftp_pass', 'updraft_ftp_remote_path', 'updraft_server_address', 'updraft_dir', 'updraft_email', 'updraft_delete_local', 'updraft_debug_mode', 'updraft_include_plugins', 'updraft_include_themes', 'updraft_include_uploads', 'updraft_include_others', 'updraft_include_wpcore', 'updraft_include_wpcore_exclude', 'updraft_include_more',
|
682 |
'updraft_include_blogs', 'updraft_include_mu-plugins', 'updraft_include_others_exclude', 'updraft_lastmessage', 'updraft_googledrive_clientid', 'updraft_googledrive_token', 'updraft_dropboxtk_request_token', 'updraft_dropboxtk_access_token', 'updraft_dropbox_folder', 'updraft_last_backup', 'updraft_starttime_files', 'updraft_starttime_db', 'updraft_sftp_settings', 'updraft_disable_ping', 'updraft_cloudfiles_user', 'updraft_cloudfiles_apikey', 'updraft_cloudfiles_path', 'updraft_cloudfiles_authurl', 'updraft_ssl_useservercerts', 'updraft_ssl_disableverify');
|
683 |
foreach ($settings as $s) {
|
684 |
UpdraftPlus_Options::delete_updraft_option($s);
|
775 |
?>
|
776 |
|
777 |
<tr>
|
778 |
+
<th><span title="<?php _e('All the times shown in this section are using WordPress\'s configured time zone, which you can set in Settings -> General', 'updraftplus'); ?>"><?php _e('Next scheduled backups','updraftplus');?>:</span></th>
|
779 |
<td>
|
780 |
<div style="width: 76px; float:left;"><?php _e('Files','updraftplus'); ?>:</div><div style="color:blue; float:left;"><?php echo $next_scheduled_backup?></div>
|
781 |
<div style="width: 76px; clear: left; float:left;"><?php _e('Database','updraftplus');?>: </div><div style="color:blue; float:left;"><?php echo $next_scheduled_backup_database?></div>
|
794 |
<?php
|
795 |
$backup_history = UpdraftPlus_Options::get_updraft_option('updraft_backup_history');
|
796 |
$backup_history = (is_array($backup_history))?$backup_history:array();
|
|
|
797 |
?>
|
798 |
+
<input type="button" class="button-primary" value="<?php _e('Restore','updraftplus');?>" style="padding-top:2px;padding-bottom:2px;font-size:22px !important; min-height: 32px;" onclick="jQuery('.download-backups').slideDown(); updraft_historytimertoggle(1); jQuery('html,body').animate({scrollTop: jQuery('#updraft_lastlogcontainer').offset().top},'slow');">
|
799 |
</div>
|
800 |
</div>
|
801 |
</div>
|
818 |
<li><strong><?php _e('Downloading','updraftplus');?>:</strong> <?php _e("Pressing a button for Database/Plugins/Themes/Uploads/Others will make UpdraftPlus try to bring the backup file back from the remote storage (if any - e.g. Amazon S3, Dropbox, Google Drive, FTP) to your webserver. Then you will be allowed to download it to your computer. If the fetch from the remote storage stops progressing (wait 30 seconds to make sure), then press again to resume. Remember that you can also visit the cloud storage vendor's website directly.",'updraftplus');?></li>
|
819 |
<li><strong><?php _e('Restoring','updraftplus');?>:</strong> <?php _e("Press the button for the backup you wish to restore. If your site is large and you are using remote storage, then you should first click on each entity in order to retrieve it back to the webserver. This will prevent time-outs from occuring during the restore process itself.",'updraftplus');?> <?php _e('More tasks:','updraftplus');?> <a href="#" onclick="jQuery('#updraft-plupload-modal').slideToggle(); return false;"><?php _e('upload backup files','updraftplus');?></a> | <a href="#" onclick="updraft_updatehistory(1); return false;" title="<?php _e('Press here to look inside your UpdraftPlus directory (in your web hosting space) for any new backup sets that you have uploaded. The location of this directory is set in the expert settings, below.','updraftplus'); ?>"><?php _e('rescan folder for new backup sets','updraftplus');?></a></li>
|
820 |
<li><strong><?php _e('Opera web browser','updraftplus');?>:</strong> <?php _e('If you are using this, then turn Turbo/Road mode off.','updraftplus');?></li>
|
821 |
+
<?php if (UpdraftPlus_Options::get_updraft_option('updraft_service') == 'googledrive') {
|
822 |
+
?><li><strong><?php _e('Google Drive','updraftplus');?>:</strong> <?php _e('Google changed their permissions setup recently (April 2013). To download or restore from Google Drive, you <strong>must</strong> first re-authenticate (using the link in the Google Drive configuration section).','updraftplus');?></li>
|
823 |
+
<?php } ?>
|
824 |
<li title="<?php _e('This is a count of the contents of your Updraft directory','updraftplus');?>"><strong><?php _e('Web-server disk space in use by UpdraftPlus','updraftplus');?>:</strong> <span id="updraft_diskspaceused"><em>(calculating...)</em></span> <a href="#" onclick="updraftplus_diskspace(); return false;"><?php _e('refresh','updraftplus');?></a></li></ul>
|
825 |
|
826 |
<div id="updraft-plupload-modal" title="<?php _e('UpdraftPlus - Upload backup files','updraftplus'); ?>" style="width: 75%; margin: 16px; display:none; margin-left: 100px;">
|
939 |
|
940 |
<div id="updraft-restore-modal" title="UpdraftPlus - <?php _e('Restore backup','updraftplus');?>">
|
941 |
<p><strong><?php _e('Restore backup from','updraftplus');?>:</strong> <span id="updraft_restore_date"></span></p>
|
942 |
+
<p><?php _e("Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection).",'updraftplus');?> <?php _e('Choose the components to restore','updraftplus');?>:</p>
|
943 |
<form id="updraft_restore_form" method="post">
|
944 |
<fieldset>
|
945 |
<input type="hidden" name="action" value="updraft_restore">
|
953 |
|
954 |
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
955 |
foreach ($backupable_entities as $type => $info) {
|
956 |
+
if (!isset($info['restorable']) || $info['restorable'] == true) {
|
957 |
+
echo '<div><input id="updraft_restore_'.$type.'" type="checkbox" name="updraft_restore[]" value="'.$type.'"> <label for="updraft_restore_'.$type.'">'.$info['description'].'</label><br>';
|
958 |
+
|
959 |
+
do_action("updraftplus_restore_form_$type");
|
960 |
+
|
961 |
+
echo '</div>';
|
962 |
+
} else {
|
963 |
+
$sdescrip = isset($info['shortdescription']) ? $info['shortdescription'] : $info['description'];
|
964 |
+
echo "<div style=\"margin: 8px 0;\"><em>".htmlspecialchars(sprintf(__('The following entity cannot be restored automatically: "%s".', 'updraftplus'), $sdescrip))." ".__('You will need to restore it manually.', 'updraftplus')."</em><br>".'<input id="updraft_restore_'.$type.'" type="hidden" name="updraft_restore[]" value="'.$type.'"></div>';
|
965 |
+
}
|
966 |
}
|
967 |
?>
|
968 |
+
<div><input id="updraft_restore_db" type="checkbox" name="updraft_restore[]" value="db"> <label for="updraft_restore_db"><?php _e('Database','updraftplus'); ?></label><br>
|
969 |
+
|
970 |
+
|
971 |
+
<div id="updraft_restorer_dboptions" style="display:none; padding:12px; margin: 8px 0 4px; border: dashed 1px;"><h4 style="margin: 0px 0px 6px; padding:0px;"><?php echo sprintf(__('%s restoration options:','updraftplus'),__('Database','updraftplus')); ?></h4>
|
972 |
+
|
973 |
+
<?php
|
974 |
+
|
975 |
+
do_action("updraftplus_restore_form_db");
|
976 |
+
|
977 |
+
if (!class_exists('UpdraftPlus_Addons_Migrator')) {
|
978 |
+
|
979 |
+
echo '<a href="http://updraftplus.com/faqs/tell-me-more-about-the-search-and-replace-site-location-in-the-database-option/">'.__('You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information','updraftplus').'</a>';
|
980 |
+
|
981 |
+
}
|
982 |
+
|
983 |
+
?>
|
984 |
+
|
985 |
+
<script>
|
986 |
+
jQuery('#updraft_restore_db').change(function(){
|
987 |
+
if (jQuery('#updraft_restore_db').is(':checked')) {
|
988 |
+
jQuery('#updraft_restorer_dboptions').slideDown();
|
989 |
+
} else {
|
990 |
+
jQuery('#updraft_restorer_dboptions').slideUp();
|
991 |
+
}
|
992 |
+
});
|
993 |
+
</script>
|
994 |
+
|
995 |
+
</div>
|
996 |
+
|
997 |
+
</div>
|
998 |
</fieldset>
|
999 |
</form>
|
1000 |
<p><em><a href="http://updraftplus.com/faqs/what-should-i-understand-before-undertaking-a-restoration/" target="_new"><?php _e('Do read this helpful article of useful things to know before restoring.','updraftplus');?></a></em></p>
|
1003 |
<div id="updraft-backupnow-modal" title="UpdraftPlus - <?php _e('Perform a backup now','updraftplus'); ?>">
|
1004 |
<p><?php _e("This will schedule a one-time backup. To proceed, press 'Backup Now', then wait 10 seconds, then visit any page on your site. WordPress should then start the backup running in the background.",'updraftplus');?></p>
|
1005 |
|
1006 |
+
<form id="updraft-backupnow-form" method="post">
|
1007 |
<input type="hidden" name="action" value="updraft_backup" />
|
1008 |
</form>
|
1009 |
|
1088 |
exit;
|
1089 |
}
|
1090 |
|
1091 |
+
$content_dir = $wp_filesystem->wp_content_dir();
|
1092 |
+
$list = $wp_filesystem->dirlist($content_dir);
|
1093 |
|
1094 |
$return_code = true;
|
1095 |
|
1097 |
if (substr($item['name'], -4, 4) == "-old") {
|
1098 |
//recursively delete
|
1099 |
print "<strong>".__('Delete','updraftplus').": </strong>".htmlspecialchars($item['name']).": ";
|
1100 |
+
if(!$wp_filesystem->delete($content_dir.$item['name'], true)) {
|
1101 |
$return_code = false;
|
1102 |
print "<strong>Failed</strong><br>";
|
1103 |
} else {
|
1119 |
}
|
1120 |
|
1121 |
$updraft_dir = $updraftplus->backups_dir_location();
|
1122 |
+
|
1123 |
+
$default_backup_dir = $wp_filesystem->find_folder($updraft_dir);
|
1124 |
$updraft_dir = ($updraft_dir)?$updraft_dir:$default_backup_dir;
|
1125 |
|
1126 |
if (!$wp_filesystem->mkdir($updraft_dir, 0775)) return false;
|
1236 |
foreach ($backupable_entities as $key => $info) {
|
1237 |
$included = (UpdraftPlus_Options::get_updraft_option("updraft_include_$key", apply_filters("updraftplus_defaultoption_include_".$key, true))) ? 'checked="checked"' : "";
|
1238 |
if ('others' == $key) {
|
1239 |
+
?><input id="updraft_include_others" type="checkbox" name="updraft_include_others" value="1" <?php echo $included; ?> /> <label for="updraft_include_<?php echo $key ?>"><?php echo __('Any other directories found inside wp-content', 'updraftplus');?></label><br><?php
|
1240 |
+
|
1241 |
+
$display = ($included) ? '' : 'style="display:none;"';
|
1242 |
+
|
1243 |
+
echo "<div id=\"updraft_include_others_exclude\" $display>";
|
1244 |
+
|
1245 |
+
echo '<label for="updraft_include_others_exclude">'.__('Exclude these:', 'updraftplus').'</label>';
|
1246 |
+
|
1247 |
+
echo '<input title="'.__('If entering multiple files/directories, then separate them with commas', 'updraftplus').'" type="text" id="updraft_include_others_exclude" name="updraft_include_others_exclude" size="54" value="'.htmlspecialchars($include_others_exclude).'" />';
|
1248 |
+
|
1249 |
+
echo '<br>';
|
1250 |
+
|
1251 |
+
echo '</div>';
|
1252 |
+
|
1253 |
+
echo <<<ENDHERE
|
1254 |
+
<script>
|
1255 |
+
jQuery(document).ready(function() {
|
1256 |
+
jQuery('#updraft_include_others').click(function() {
|
1257 |
+
if (jQuery('#updraft_include_others').is(':checked')) {
|
1258 |
+
jQuery('#updraft_include_others_exclude').slideDown();
|
1259 |
+
} else {
|
1260 |
+
jQuery('#updraft_include_others_exclude').slideUp();
|
1261 |
+
}
|
1262 |
+
});
|
1263 |
+
});
|
1264 |
+
</script>
|
1265 |
+
ENDHERE;
|
1266 |
+
|
1267 |
} else {
|
1268 |
echo "<input id=\"updraft_include_$key\" type=\"checkbox\" name=\"updraft_include_$key\" value=\"1\" $included /><label for=\"updraft_include_$key\"> ".$info['description']."</label><br>";
|
1269 |
+
do_action("updraftplus_config_option_include_$key");
|
1270 |
}
|
1271 |
}
|
1272 |
?>
|
1415 |
updraft_check_same_times();
|
1416 |
|
1417 |
jQuery( "#updraft-restore-modal" ).dialog({
|
1418 |
+
autoOpen: false, height: 505, width: 590, modal: true,
|
1419 |
buttons: {
|
1420 |
'<?php _e('Restore','updraftplus');?>': function() {
|
1421 |
var anyselected = 0;
|
1635 |
<?php
|
1636 |
foreach ($backupable_entities as $type => $info) {
|
1637 |
echo '<td>';
|
1638 |
+
$sdescrip = preg_replace('/ \(.*\)$/', '', $info['description']);
|
1639 |
+
if (strlen($sdescrip) > 20 && isset($info['shortdescription'])) $sdescrip = $info['shortdescription'];
|
1640 |
if (isset($value[$type])) {
|
1641 |
$entities .= '/'.$type.'/';
|
|
|
1642 |
?>
|
1643 |
<form id="uddownloadform_<?php echo $type.'_'.$key;?>" action="admin-ajax.php" onsubmit="return updraft_downloader('uddlstatus_', '<?php echo $key."', '".$type;?>')" method="post">
|
1644 |
<?php wp_nonce_field('updraftplus_download'); ?>
|
1647 |
<input type="hidden" name="timestamp" value="<?php echo $key?>" />
|
1648 |
<input type="submit" title="<?php echo __('Press here to download','updraftplus').' '.strtolower($info['description']); ?>" value="<?php echo $sdescrip;?>" />
|
1649 |
</form>
|
1650 |
+
<?php } else { printf(_x('(No %s)','Message shown when no such object is available','updraftplus'), preg_replace('/\s\(.{12,}\)/', '', strtolower($sdescrip))); } ?>
|
1651 |
</td>
|
1652 |
<?php }; ?>
|
1653 |
|
1665 |
<form method="post" action="">
|
1666 |
<input type="hidden" name="backup_timestamp" value="<?php echo $key;?>">
|
1667 |
<input type="hidden" name="action" value="updraft_restore" />
|
1668 |
+
<?php if ($entities) { ?><button title="<?php _e('After pressing this button, you will be given the option to choose which components you wish to restore','updraftplus');?>" type="button" class="button-primary" style="padding-top:2px;padding-bottom:2px;font-size:16px !important; min-height:26px;" onclick="updraft_restore_setoptions('<?php echo $entities;?>'); jQuery('#updraft_restore_timestamp').val('<?php echo $key;?>'); jQuery('#updraft_restore_date').html('<?php echo $pretty_date;?>'); jQuery('#updraft-restore-modal').dialog('open');"><?php _e('Restore','updraftplus');?></button><?php } ?>
|
1669 |
</form>
|
1670 |
</td>
|
1671 |
</tr>
|
1672 |
<script>
|
1673 |
+
function updraft_restore_setoptions(entities) {
|
1674 |
+
var howmany = 0;
|
1675 |
jQuery('input[name="updraft_restore[]"]').each(function(x,y){
|
1676 |
var entity = jQuery(y).val();
|
1677 |
if (entities.indexOf('/'+entity+'/') != -1) {
|
1678 |
jQuery(y).removeAttr('disabled').parent().show();
|
1679 |
+
howmany++;
|
1680 |
+
if (entity == 'db') { howmany += 4.5;}
|
1681 |
} else {
|
1682 |
jQuery(y).attr('disabled','disabled').parent().hide();
|
1683 |
}
|
1684 |
});
|
1685 |
+
var height = 276+howmany*20;
|
1686 |
+
jQuery('#updraft-restore-modal').dialog("option", "height", height);
|
1687 |
}
|
1688 |
</script>
|
1689 |
<?php }
|
1757 |
return false;
|
1758 |
}
|
1759 |
|
1760 |
+
// request_filesystem_credentials passes on fields just via hidden name/value pairs.
|
1761 |
+
// Build array of parameters to be passed via this
|
1762 |
+
$extra_fields = array();
|
1763 |
+
if (isset($_POST['updraft_restore']) && is_array($_POST['updraft_restore'])) {
|
1764 |
+
foreach ($_POST['updraft_restore'] as $entity) {
|
1765 |
+
$_POST['updraft_restore_'.$entity] = 1;
|
1766 |
+
$extra_fields[] = 'updraft_restore_'.$entity;
|
1767 |
+
}
|
1768 |
+
}
|
1769 |
+
// Now make sure that updraft_restorer_ option fields get passed along to request_filesystem_credentials
|
1770 |
+
foreach ($_POST as $key => $value) {
|
1771 |
+
if (strpos($key, 'updraft_restorer_') === 0 ) {
|
1772 |
+
$extra_fields[] = $key;
|
1773 |
+
}
|
1774 |
+
}
|
1775 |
+
|
1776 |
+
$credentials = request_filesystem_credentials("options-general.php?page=updraftplus&action=updraft_restore&backup_timestamp=$timestamp", '', false, false, $extra_fields);
|
1777 |
WP_Filesystem($credentials);
|
1778 |
if ( $wp_filesystem->errors->get_error_code() ) {
|
1779 |
foreach ( $wp_filesystem->errors->get_error_messages() as $message )
|
1788 |
|
1789 |
$service = (isset($backup_history[$timestamp]['service'])) ? $backup_history[$timestamp]['service'] : false;
|
1790 |
|
1791 |
+
// Now, need to turn any updraft_restore_<entity> fields (that came from a potential WP_Filesystem form) back into parts of the _POST array (which we want to use)
|
1792 |
+
if (empty($_POST['updraft_restore']) || (!is_array($_POST['updraft_restore']))) $_POST['updraft_restore'] = array();
|
1793 |
+
|
1794 |
+
$entities_to_restore = array_flip($_POST['updraft_restore']);
|
1795 |
+
|
1796 |
+
foreach ($_POST as $key => $value) {
|
1797 |
+
if (strpos($key, 'updraft_restore_') === 0 ) {
|
1798 |
+
$nkey = substr($key, 16);
|
1799 |
+
if (!isset($entities_to_restore[$nkey])) {
|
1800 |
+
$_POST['updraft_restore'][] = $nkey;
|
1801 |
+
$entities_to_restore[$nkey] = 1;
|
1802 |
+
}
|
1803 |
+
}
|
1804 |
+
}
|
1805 |
+
|
1806 |
+
if (count($_POST['updraft_restore']) == 0) {
|
1807 |
echo '<p>'.__('ABORT: Could not find the information on which entities to restore.', 'updraftplus').'</p>';
|
1808 |
+
echo '<p>'.__('If making a request for support, please include this information:','updraftplus').' '.count($_POST).' : '.htmlspecialchars(serialize($_POST)).'</p>';
|
1809 |
return false;
|
1810 |
}
|
1811 |
|
1812 |
+
/*
|
1813 |
+
$_POST['updraft_restore'] is typically something like: array( 0=>'db', 1=>'plugins', 2=>'themes'), etc.
|
1814 |
+
i.e. array ( 'db', 'plugins', themes')
|
1815 |
+
*/
|
1816 |
|
1817 |
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
1818 |
|
1821 |
|
1822 |
if (!isset($backupable_entities[$type]) && 'db' != $type) continue;
|
1823 |
|
1824 |
+
if (isset($backupable_entities[$type]['restorable']) && $backupable_entities[$type]['restorable'] == false) continue;
|
1825 |
+
|
1826 |
if ($type == 'db') {
|
1827 |
echo "<h2>".__('Database','updraftplus')."</h2>";
|
1828 |
} else {
|
1860 |
if(!class_exists('WP_Upgrader')) require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
|
1861 |
require_once(UPDRAFTPLUS_DIR.'/includes/updraft-restorer.php');
|
1862 |
$restorer = new Updraft_Restorer();
|
1863 |
+
|
1864 |
+
$info = (isset($backupable_entities[$type])) ? $backupable_entities[$type] : array();
|
1865 |
+
|
1866 |
+
$val = $restorer->restore_backup($file, $type, $service, $info);
|
1867 |
|
1868 |
if(is_wp_error($val)) {
|
1869 |
foreach ($val->get_error_messages() as $msg) {
|
backup.php
CHANGED
@@ -242,10 +242,10 @@ class UpdraftPlus_Backup {
|
|
242 |
if (filesize($zipfile) > $before_size) $updraftplus->something_useful_happened();
|
243 |
clearstatcache();
|
244 |
}
|
245 |
-
}
|
246 |
$this->zipfiles_added++;
|
247 |
// Don't call something_useful_happened() here - nothing necessarily happens until close() is called
|
248 |
-
if ($this->zipfiles_added % 100 == 0) $updraftplus->log("Zip: ".basename($zipfile).": ".$this->zipfiles_added." files added (on-disk size: ".round(filesize($zipfile)/1024,1)." Kb
|
249 |
}
|
250 |
// Reset the array
|
251 |
$this->zipfiles_batched = array();
|
242 |
if (filesize($zipfile) > $before_size) $updraftplus->something_useful_happened();
|
243 |
clearstatcache();
|
244 |
}
|
245 |
+
}
|
246 |
$this->zipfiles_added++;
|
247 |
// Don't call something_useful_happened() here - nothing necessarily happens until close() is called
|
248 |
+
if ($this->zipfiles_added % 100 == 0) $updraftplus->log("Zip: ".basename($zipfile).": ".$this->zipfiles_added." files added (on-disk size: ".round(filesize($zipfile)/1024,1)." Kb)");
|
249 |
}
|
250 |
// Reset the array
|
251 |
$this->zipfiles_batched = array();
|
includes/Dropbox/OAuth/Storage/Encrypter.php
CHANGED
@@ -51,8 +51,10 @@ class Dropbox_Encrypter
|
|
51 |
// Only MCRYPT_RAND is available on Windows prior to PHP 5.3
|
52 |
if (version_compare(phpversion(), '5.3.0', '<') && strtoupper(substr(php_uname('s'), 0, 3)) === 'WIN') {
|
53 |
$crypt_source = MCRYPT_RAND;
|
54 |
-
}
|
55 |
$crypt_source = MCRYPT_DEV_URANDOM;
|
|
|
|
|
56 |
}
|
57 |
$iv = mcrypt_create_iv(self::IV_SIZE, $crypt_source);
|
58 |
$cipherText = @mcrypt_encrypt(self::CIPHER, $this->key, $token, self::MODE, $iv);
|
51 |
// Only MCRYPT_RAND is available on Windows prior to PHP 5.3
|
52 |
if (version_compare(phpversion(), '5.3.0', '<') && strtoupper(substr(php_uname('s'), 0, 3)) === 'WIN') {
|
53 |
$crypt_source = MCRYPT_RAND;
|
54 |
+
} elseif (@is_readable("/dev/urandom")) {
|
55 |
$crypt_source = MCRYPT_DEV_URANDOM;
|
56 |
+
} else {
|
57 |
+
$crypt_source = MCRYPT_RAND;
|
58 |
}
|
59 |
$iv = mcrypt_create_iv(self::IV_SIZE, $crypt_source);
|
60 |
$cipherText = @mcrypt_encrypt(self::CIPHER, $this->key, $token, self::MODE, $iv);
|
includes/ftp.class.php
CHANGED
@@ -10,6 +10,8 @@ class UpdraftPlus_ftp_wrapper {
|
|
10 |
public $passive = true;
|
11 |
public $system_type = '';
|
12 |
public $ssl = false;
|
|
|
|
|
13 |
public $login_type = 'non-encrypted';
|
14 |
|
15 |
public function __construct($host, $username, $password, $port = 21)
|
@@ -58,11 +60,12 @@ class UpdraftPlus_ftp_wrapper {
|
|
58 |
$existing_size = 0;
|
59 |
if ($resume) {
|
60 |
$existing_size = ftp_size($this->conn_id, $remote_file_path);
|
61 |
-
if ($existing_size <=0) {
|
62 |
-
|
63 |
-
|
|
|
64 |
if ($existing_size >= $file_size) {
|
65 |
-
$updraftplus->log("File is apparently already completely uploaded");
|
66 |
return true;
|
67 |
}
|
68 |
}
|
@@ -79,7 +82,7 @@ class UpdraftPlus_ftp_wrapper {
|
|
79 |
// $existing_size can now be re-purposed
|
80 |
|
81 |
while ($ret == FTP_MOREDATA) {
|
82 |
-
if ($updraftplus) {
|
83 |
$new_size = ftell($fh);
|
84 |
if ($new_size - $existing_size > 524288) {
|
85 |
$existing_size = $new_size;
|
@@ -94,7 +97,7 @@ class UpdraftPlus_ftp_wrapper {
|
|
94 |
fclose($fh);
|
95 |
|
96 |
if ($ret != FTP_FINISHED) {
|
97 |
-
if ($updraftplus) $updraftplus->log("FTP upload: error ($ret)");
|
98 |
return false;
|
99 |
}
|
100 |
|
10 |
public $passive = true;
|
11 |
public $system_type = '';
|
12 |
public $ssl = false;
|
13 |
+
public $use_server_certs = false;
|
14 |
+
public $disable_verify = true;
|
15 |
public $login_type = 'non-encrypted';
|
16 |
|
17 |
public function __construct($host, $username, $password, $port = 21)
|
60 |
$existing_size = 0;
|
61 |
if ($resume) {
|
62 |
$existing_size = ftp_size($this->conn_id, $remote_file_path);
|
63 |
+
if ($existing_size <=0) {
|
64 |
+
$resume = false; $existing_size = 0;
|
65 |
+
} else {
|
66 |
+
if (is_a($updraftplus, 'UpdraftPlus')) $updraftplus->log("File already exists at remote site: size $existing_size. Will attempt resumption.");
|
67 |
if ($existing_size >= $file_size) {
|
68 |
+
if (is_a($updraftplus, 'UpdraftPlus')) $updraftplus->log("File is apparently already completely uploaded");
|
69 |
return true;
|
70 |
}
|
71 |
}
|
82 |
// $existing_size can now be re-purposed
|
83 |
|
84 |
while ($ret == FTP_MOREDATA) {
|
85 |
+
if (is_a($updraftplus, 'UpdraftPlus')) {
|
86 |
$new_size = ftell($fh);
|
87 |
if ($new_size - $existing_size > 524288) {
|
88 |
$existing_size = $new_size;
|
97 |
fclose($fh);
|
98 |
|
99 |
if ($ret != FTP_FINISHED) {
|
100 |
+
if (is_a($updraftplus, 'UpdraftPlus')) $updraftplus->log("FTP upload: error ($ret)");
|
101 |
return false;
|
102 |
}
|
103 |
|
includes/jquery-ui-1.8.22.custom.css
CHANGED
@@ -560,4 +560,4 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
|
|
560 |
* http://docs.jquery.com/UI/Progressbar#theming
|
561 |
*/
|
562 |
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
563 |
-
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
560 |
* http://docs.jquery.com/UI/Progressbar#theming
|
561 |
*/
|
562 |
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
563 |
+
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
includes/updraft-restorer.php
CHANGED
@@ -4,6 +4,7 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
4 |
function backup_strings() {
|
5 |
$this->strings['not_possible'] = __('UpdraftPlus is not able to directly restore this kind of entity. It must be restored manually.','updraftplus');
|
6 |
$this->strings['no_package'] = __('Backup file not available.','updraftplus');
|
|
|
7 |
$this->strings['unpack_package'] = __('Unpacking backup...','updraftplus');
|
8 |
$this->strings['decrypt_database'] = __('Decrypting database (can take a while)...','updraftplus');
|
9 |
$this->strings['decrypted_database'] = __('Database successfully decrypted.','updraftplus');
|
@@ -17,20 +18,26 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
17 |
$this->strings['delete_failed'] = __('Failed to delete working directory after restoring.','updraftplus');
|
18 |
}
|
19 |
|
|
|
20 |
function unpack_package($package, $delete_package = true) {
|
21 |
|
|
|
|
|
|
|
|
|
22 |
// If not database, then it is a zip - unpack in the usual way
|
23 |
-
if (!preg_match('/db\.gz(\.crypt)?$/i', $package)) return parent::unpack_package($package, $delete_package);
|
|
|
|
|
24 |
|
25 |
// Unpack a database. The general shape of the following is copied from class-wp-upgrader.php
|
26 |
|
27 |
@set_time_limit(1800);
|
28 |
|
29 |
-
global $wp_filesystem;
|
30 |
-
|
31 |
$this->skin->feedback('unpack_package');
|
32 |
|
33 |
$upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/';
|
|
|
34 |
|
35 |
//Clean up contents of upgrade directory beforehand.
|
36 |
$upgrade_files = $wp_filesystem->dirlist($upgrade_folder);
|
@@ -41,12 +48,13 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
41 |
|
42 |
//We need a working directory
|
43 |
$working_dir = $upgrade_folder . basename($package, '.crypt');
|
|
|
44 |
|
45 |
// Clean up working directory
|
46 |
if ( $wp_filesystem->is_dir($working_dir) )
|
47 |
$wp_filesystem->delete($working_dir, true);
|
48 |
|
49 |
-
if (!$wp_filesystem->mkdir($working_dir, 0775)) return new WP_Error('mkdir_failed', __('Failed to create a temporary directory','updraftplus'));
|
50 |
|
51 |
// Unpack package to working directory
|
52 |
if (preg_match('/\.crypt$/i', $package)) {
|
@@ -60,7 +68,7 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
60 |
|
61 |
// Get decryption key
|
62 |
$rijndael->setKey($encryption);
|
63 |
-
$ciphertext = $rijndael->decrypt($wp_filesystem->get_contents($package));
|
64 |
if ($ciphertext) {
|
65 |
$this->skin->feedback('decrypted_database');
|
66 |
if (!$wp_filesystem->put_contents($working_dir.'/backup.db.gz', $ciphertext)) {
|
@@ -70,19 +78,26 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
70 |
return new WP_Error('decryption_failed', __('Decryption failed. The most likely cause is that you used the wrong key.','updraftplus'));
|
71 |
}
|
72 |
} else {
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
75 |
|
76 |
-
// Once extracted, delete the package if required
|
77 |
if ( $delete_package )
|
78 |
-
|
79 |
|
80 |
return $working_dir;
|
81 |
|
82 |
}
|
83 |
|
84 |
// For moving files out of a directory into their new location
|
85 |
-
// The only purpose of the $type parameter is to detect 'others' and apply a historical bugfix
|
86 |
// Must use only wp_filesystem
|
87 |
// $dest_dir must already have a trailing slash
|
88 |
function move_backup_in($working_dir, $dest_dir, $make_backup = true, $do_not_overwrite = array('plugins', 'themes', 'uploads', 'upgrade'), $type = 'not-others') {
|
@@ -106,6 +121,17 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
106 |
$wp_filesystem->rmdir($working_dir . "/$tmp_file", false);
|
107 |
}
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
# Sanity check (should not be possible as these were excluded at backup time)
|
110 |
if (!in_array($file, $do_not_overwrite)) {
|
111 |
# First, move the existing one, if necessary (may not be present)
|
@@ -135,14 +161,18 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
135 |
|
136 |
}
|
137 |
|
|
|
138 |
function restore_backup($backup_file, $type, $service, $info) {
|
139 |
|
|
|
|
|
|
|
|
|
|
|
140 |
global $wp_filesystem;
|
141 |
$this->init();
|
142 |
$this->backup_strings();
|
143 |
|
144 |
-
$dirname = basename($info['path']);
|
145 |
-
|
146 |
$res = $this->fs_connect(array(ABSPATH, WP_CONTENT_DIR) );
|
147 |
if(!$res) exit;
|
148 |
|
@@ -150,52 +180,58 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
150 |
|
151 |
@set_time_limit(1800);
|
152 |
|
153 |
-
$download = $this->download_package($backup_file);
|
154 |
-
if ( is_wp_error($download) ) return $download;
|
155 |
-
|
156 |
$delete = (UpdraftPlus_Options::get_updraft_option('updraft_delete_local')) ? true : false;
|
157 |
if ('none' == $service) {
|
158 |
if ($delete) _e('Will not delete the archive after unpacking it, because there was no cloud storage for this backup','updraftplus').'<br>';
|
159 |
$delete = false;
|
160 |
}
|
161 |
|
162 |
-
|
|
|
|
|
163 |
if (is_wp_error($working_dir)) return $working_dir;
|
|
|
164 |
|
165 |
@set_time_limit(1800);
|
166 |
|
167 |
if ($type == 'others' ) {
|
168 |
|
|
|
|
|
169 |
// In this special case, the backup contents are not in a folder, so it is not simply a case of moving the folder around, but rather looping over all that we find
|
170 |
|
171 |
$this->move_backup_in($working_dir, $wp_dir."wp-content/", true, array('plugins', 'themes', 'uploads', 'upgrade'), 'others');
|
172 |
|
173 |
} elseif ('db' == $type) {
|
174 |
|
|
|
|
|
175 |
// There is a file backup.db.gz inside the working directory
|
176 |
|
177 |
# The 'off' check is for badly configured setups - http://wordpress.org/support/topic/plugin-wp-super-cache-warning-php-safe-mode-enabled-but-safe-mode-is-off
|
178 |
-
if(@ini_get('safe_mode') && strtolower(@ini_get('safe_mode')) != "off") {
|
179 |
echo "<p>".__('Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method.', 'updraftplus')."</p><br/>";
|
180 |
return false;
|
181 |
}
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
if (!is_readable($working_dir.'/backup.db.gz')) return new WP_Error('gzopen_failed',__('Failed to find database file','updraftplus'));
|
187 |
|
188 |
$this->skin->feedback('restore_database');
|
189 |
|
190 |
// Read-only access: don't need to go through WP_Filesystem
|
191 |
-
$dbhandle = gzopen($
|
192 |
if (!$dbhandle) return new WP_Error('gzopen_failed',__('Failed to open database file','updraftplus'));
|
193 |
|
194 |
$line = 0;
|
195 |
|
|
|
|
|
196 |
// Line up a wpdb-like object to use
|
197 |
// mysql_query will throw E_DEPRECATED from PHP 5.5, so we expect WordPress to have switched to something else by then
|
198 |
-
|
|
|
|
|
199 |
|
200 |
if (false == $use_wpdb) {
|
201 |
// We have our own extension which drops lots of the overhead on the query
|
@@ -235,7 +271,7 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
235 |
|
236 |
# The timed overhead of this is negligible
|
237 |
if (preg_match('/^\s*create table \`?([^\`]*)`?\s+\(/i', $sql_line, $matches)) {
|
238 |
-
echo __('Restoring table','updraftplus')."
|
239 |
}
|
240 |
|
241 |
if ($use_wpdb) {
|
@@ -247,7 +283,7 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
247 |
}
|
248 |
|
249 |
if (!$req) {
|
250 |
-
echo sprintf(_x('An error (%s) occured:', 'The user is being told the number of times an error has happened, e.g. An error (27) occurred', 'updraftplus'), $errors).
|
251 |
$errors++;
|
252 |
if ($errors>49) {
|
253 |
return new WP_Error('too_many_db_errors', __('Too many database errors have occurred - aborting restoration (you will need to restore manually)','updraftplus'));
|
@@ -268,10 +304,12 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
268 |
$time_taken = microtime(true) - $start_time;
|
269 |
echo sprintf(__('Finished: lines processed: %d in %.2f seconds','updraftplus'),$line, $time_taken)."<br>";
|
270 |
gzclose($dbhandle);
|
271 |
-
|
272 |
|
273 |
} else {
|
274 |
|
|
|
|
|
275 |
show_message($this->strings['moving_old']);
|
276 |
|
277 |
$movedin = apply_filters('updraftplus_restore_movein_'.$type, $working_dir, $wp_dir);
|
@@ -304,6 +342,7 @@ class Updraft_Restorer extends WP_Upgrader {
|
|
304 |
@$wp_filesystem->chmod($wp_dir . "wp-content/$dirname", 0775, true);
|
305 |
break;
|
306 |
case 'db':
|
|
|
307 |
break;
|
308 |
default:
|
309 |
@$wp_filesystem->chmod($wp_dir . "wp-content/$dirname", FS_CHMOD_DIR);
|
@@ -320,4 +359,4 @@ class UpdraftPlus_WPDB extends wpdb {
|
|
320 |
}
|
321 |
|
322 |
}
|
323 |
-
?>
|
4 |
function backup_strings() {
|
5 |
$this->strings['not_possible'] = __('UpdraftPlus is not able to directly restore this kind of entity. It must be restored manually.','updraftplus');
|
6 |
$this->strings['no_package'] = __('Backup file not available.','updraftplus');
|
7 |
+
$this->strings['copy_failed'] = __('Copying this entity failed.','updraftplus');
|
8 |
$this->strings['unpack_package'] = __('Unpacking backup...','updraftplus');
|
9 |
$this->strings['decrypt_database'] = __('Decrypting database (can take a while)...','updraftplus');
|
10 |
$this->strings['decrypted_database'] = __('Database successfully decrypted.','updraftplus');
|
18 |
$this->strings['delete_failed'] = __('Failed to delete working directory after restoring.','updraftplus');
|
19 |
}
|
20 |
|
21 |
+
// This returns a wp_filesystem location (and we musn't change that, as we must retain compatibility with the class parent)
|
22 |
function unpack_package($package, $delete_package = true) {
|
23 |
|
24 |
+
global $wp_filesystem, $updraftplus;
|
25 |
+
|
26 |
+
$updraft_dir = $updraftplus->backups_dir_location();
|
27 |
+
|
28 |
// If not database, then it is a zip - unpack in the usual way
|
29 |
+
if (!preg_match('/db\.gz(\.crypt)?$/i', $package)) return parent::unpack_package($updraft_dir.'/'.$package, $delete_package);
|
30 |
+
|
31 |
+
$backup_dir = $wp_filesystem->find_folder($updraft_dir);
|
32 |
|
33 |
// Unpack a database. The general shape of the following is copied from class-wp-upgrader.php
|
34 |
|
35 |
@set_time_limit(1800);
|
36 |
|
|
|
|
|
37 |
$this->skin->feedback('unpack_package');
|
38 |
|
39 |
$upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/';
|
40 |
+
@$wp_filesystem->mkdir($upgrade_folder, 0775);
|
41 |
|
42 |
//Clean up contents of upgrade directory beforehand.
|
43 |
$upgrade_files = $wp_filesystem->dirlist($upgrade_folder);
|
48 |
|
49 |
//We need a working directory
|
50 |
$working_dir = $upgrade_folder . basename($package, '.crypt');
|
51 |
+
# $working_dir_filesystem = WP_CONTENT_DIR.'/upgrade/'. basename($package, '.crypt');
|
52 |
|
53 |
// Clean up working directory
|
54 |
if ( $wp_filesystem->is_dir($working_dir) )
|
55 |
$wp_filesystem->delete($working_dir, true);
|
56 |
|
57 |
+
if (!$wp_filesystem->mkdir($working_dir, 0775)) return new WP_Error('mkdir_failed', __('Failed to create a temporary directory','updraftplus').' ('.$working_dir.')');
|
58 |
|
59 |
// Unpack package to working directory
|
60 |
if (preg_match('/\.crypt$/i', $package)) {
|
68 |
|
69 |
// Get decryption key
|
70 |
$rijndael->setKey($encryption);
|
71 |
+
$ciphertext = $rijndael->decrypt($wp_filesystem->get_contents($backup_dir.$package));
|
72 |
if ($ciphertext) {
|
73 |
$this->skin->feedback('decrypted_database');
|
74 |
if (!$wp_filesystem->put_contents($working_dir.'/backup.db.gz', $ciphertext)) {
|
78 |
return new WP_Error('decryption_failed', __('Decryption failed. The most likely cause is that you used the wrong key.','updraftplus'));
|
79 |
}
|
80 |
} else {
|
81 |
+
|
82 |
+
if (!$wp_filesystem->copy($backup_dir.$package, $working_dir.'/backup.db.gz')) {
|
83 |
+
if ( $wp_filesystem->errors->get_error_code() ) {
|
84 |
+
foreach ( $wp_filesystem->errors->get_error_messages() as $message ) show_message($message);
|
85 |
+
}
|
86 |
+
return new WP_Error('copy_failed', $this->strings['copy_failed']);
|
87 |
+
}
|
88 |
+
|
89 |
}
|
90 |
|
91 |
+
// Once extracted, delete the package if required (non-recursive, is a file)
|
92 |
if ( $delete_package )
|
93 |
+
$wp_filesystem->delete($backup_dir.$package, false, true);
|
94 |
|
95 |
return $working_dir;
|
96 |
|
97 |
}
|
98 |
|
99 |
// For moving files out of a directory into their new location
|
100 |
+
// The only purpose of the $type parameter is 1) to detect 'others' and apply a historical bugfix 2) to detect wpcore, and apply the setting for what to do with wp-config.php
|
101 |
// Must use only wp_filesystem
|
102 |
// $dest_dir must already have a trailing slash
|
103 |
function move_backup_in($working_dir, $dest_dir, $make_backup = true, $do_not_overwrite = array('plugins', 'themes', 'uploads', 'upgrade'), $type = 'not-others') {
|
121 |
$wp_filesystem->rmdir($working_dir . "/$tmp_file", false);
|
122 |
}
|
123 |
|
124 |
+
if ('wpcore' == $type && 'wp-config.php' == $file) {
|
125 |
+
if (empty($_POST['updraft_restorer_wpcore_includewpconfig'])) {
|
126 |
+
_e('wp-config.php from backup: will restore as wp-config-backup.php', 'updraftplus');
|
127 |
+
$wp_filesystem->move($working_dir . "/$file", $working_dir . "/wp-config-backup.php", true);
|
128 |
+
$file = "wp-config-backup.php";
|
129 |
+
} else {
|
130 |
+
_e('wp-config.php from backup: restoring (as per user\'s request)', 'updraftplus');
|
131 |
+
}
|
132 |
+
echo '<br>';
|
133 |
+
}
|
134 |
+
|
135 |
# Sanity check (should not be possible as these were excluded at backup time)
|
136 |
if (!in_array($file, $do_not_overwrite)) {
|
137 |
# First, move the existing one, if necessary (may not be present)
|
161 |
|
162 |
}
|
163 |
|
164 |
+
// $backup_file is just the basename
|
165 |
function restore_backup($backup_file, $type, $service, $info) {
|
166 |
|
167 |
+
if ($type == 'more') {
|
168 |
+
show_message($this->strings['not_possible']);
|
169 |
+
return;
|
170 |
+
}
|
171 |
+
|
172 |
global $wp_filesystem;
|
173 |
$this->init();
|
174 |
$this->backup_strings();
|
175 |
|
|
|
|
|
176 |
$res = $this->fs_connect(array(ABSPATH, WP_CONTENT_DIR) );
|
177 |
if(!$res) exit;
|
178 |
|
180 |
|
181 |
@set_time_limit(1800);
|
182 |
|
|
|
|
|
|
|
183 |
$delete = (UpdraftPlus_Options::get_updraft_option('updraft_delete_local')) ? true : false;
|
184 |
if ('none' == $service) {
|
185 |
if ($delete) _e('Will not delete the archive after unpacking it, because there was no cloud storage for this backup','updraftplus').'<br>';
|
186 |
$delete = false;
|
187 |
}
|
188 |
|
189 |
+
// This returns the wp_filesystem path
|
190 |
+
$working_dir = $this->unpack_package($backup_file, $delete);
|
191 |
+
|
192 |
if (is_wp_error($working_dir)) return $working_dir;
|
193 |
+
$working_dir_filesystem = WP_CONTENT_DIR.'/upgrade/'.basename($working_dir);
|
194 |
|
195 |
@set_time_limit(1800);
|
196 |
|
197 |
if ($type == 'others' ) {
|
198 |
|
199 |
+
$dirname = basename($info['path']);
|
200 |
+
|
201 |
// In this special case, the backup contents are not in a folder, so it is not simply a case of moving the folder around, but rather looping over all that we find
|
202 |
|
203 |
$this->move_backup_in($working_dir, $wp_dir."wp-content/", true, array('plugins', 'themes', 'uploads', 'upgrade'), 'others');
|
204 |
|
205 |
} elseif ('db' == $type) {
|
206 |
|
207 |
+
do_action('updraftplus_restore_db_pre');
|
208 |
+
|
209 |
// There is a file backup.db.gz inside the working directory
|
210 |
|
211 |
# The 'off' check is for badly configured setups - http://wordpress.org/support/topic/plugin-wp-super-cache-warning-php-safe-mode-enabled-but-safe-mode-is-off
|
212 |
+
if (@ini_get('safe_mode') && strtolower(@ini_get('safe_mode')) != "off") {
|
213 |
echo "<p>".__('Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method.', 'updraftplus')."</p><br/>";
|
214 |
return false;
|
215 |
}
|
216 |
|
217 |
+
// wp_filesystem has no gzopen method, so we switch to using the local filesystem (which is harmless, since we are performing read-only operations)
|
218 |
+
if (!is_readable($working_dir_filesystem.'/backup.db.gz')) return new WP_Error('gzopen_failed',__('Failed to find database file','updraftplus')." ($working_dir/backup.db.gz)");
|
|
|
|
|
219 |
|
220 |
$this->skin->feedback('restore_database');
|
221 |
|
222 |
// Read-only access: don't need to go through WP_Filesystem
|
223 |
+
$dbhandle = gzopen($working_dir_filesystem.'/backup.db.gz', 'r');
|
224 |
if (!$dbhandle) return new WP_Error('gzopen_failed',__('Failed to open database file','updraftplus'));
|
225 |
|
226 |
$line = 0;
|
227 |
|
228 |
+
global $wpdb;
|
229 |
+
|
230 |
// Line up a wpdb-like object to use
|
231 |
// mysql_query will throw E_DEPRECATED from PHP 5.5, so we expect WordPress to have switched to something else by then
|
232 |
+
// $use_wpdb = (version_compare(phpversion(), '5.5', '>=') || !function_exists('mysql_query') || !$wpdb->is_mysql || !$wpdb->ready) ? true : false;
|
233 |
+
// Seems not - PHP 5.5 is immanent for release
|
234 |
+
$use_wpdb = (!function_exists('mysql_query') || !$wpdb->is_mysql || !$wpdb->ready) ? true : false;
|
235 |
|
236 |
if (false == $use_wpdb) {
|
237 |
// We have our own extension which drops lots of the overhead on the query
|
271 |
|
272 |
# The timed overhead of this is negligible
|
273 |
if (preg_match('/^\s*create table \`?([^\`]*)`?\s+\(/i', $sql_line, $matches)) {
|
274 |
+
echo '<strong>'.__('Restoring table','updraftplus').":</strong> ".htmlspecialchars($matches[1])."<br>";
|
275 |
}
|
276 |
|
277 |
if ($use_wpdb) {
|
283 |
}
|
284 |
|
285 |
if (!$req) {
|
286 |
+
echo sprintf(_x('An error (%s) occured:', 'The user is being told the number of times an error has happened, e.g. An error (27) occurred', 'updraftplus'), $errors)." - ".htmlspecialchars($last_error)." - ".__('the database query being run was:','updraftplus').' '.htmlspecialchars($sql_line).'<br>';
|
287 |
$errors++;
|
288 |
if ($errors>49) {
|
289 |
return new WP_Error('too_many_db_errors', __('Too many database errors have occurred - aborting restoration (you will need to restore manually)','updraftplus'));
|
304 |
$time_taken = microtime(true) - $start_time;
|
305 |
echo sprintf(__('Finished: lines processed: %d in %.2f seconds','updraftplus'),$line, $time_taken)."<br>";
|
306 |
gzclose($dbhandle);
|
307 |
+
$wp_filesystem->delete($working_dir.'/backup.db.gz', false, true);
|
308 |
|
309 |
} else {
|
310 |
|
311 |
+
$dirname = basename($info['path']);
|
312 |
+
|
313 |
show_message($this->strings['moving_old']);
|
314 |
|
315 |
$movedin = apply_filters('updraftplus_restore_movein_'.$type, $working_dir, $wp_dir);
|
342 |
@$wp_filesystem->chmod($wp_dir . "wp-content/$dirname", 0775, true);
|
343 |
break;
|
344 |
case 'db':
|
345 |
+
do_action('updraftplus_restored_db');
|
346 |
break;
|
347 |
default:
|
348 |
@$wp_filesystem->chmod($wp_dir . "wp-content/$dirname", FS_CHMOD_DIR);
|
359 |
}
|
360 |
|
361 |
}
|
362 |
+
?>
|
languages/updraftplus.pot
CHANGED
@@ -2,8 +2,8 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: UpdraftPlus\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2013-04-
|
6 |
-
"PO-Revision-Date: 2013-04-
|
7 |
"Last-Translator: David Anderson <contact@updraftplus.com>\n"
|
8 |
"Language-Team: <contact@updraftplus.com>\n"
|
9 |
"Language: \n"
|
@@ -18,195 +18,195 @@ msgstr ""
|
|
18 |
msgid "UpdraftPlus Backups"
|
19 |
msgstr ""
|
20 |
|
21 |
-
#: updraftplus.php:
|
22 |
-
#: updraftplus.php:
|
23 |
-
#: updraftplus.php:
|
24 |
-
#: admin.php:
|
25 |
-
#: admin.php:
|
26 |
msgid "UpdraftPlus notice:"
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: updraftplus.php:
|
30 |
msgid "The log file could not be read."
|
31 |
msgstr ""
|
32 |
|
33 |
-
#: updraftplus.php:
|
34 |
msgid "No log files were found."
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: updraftplus.php:
|
38 |
msgid "The given file could not be read."
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: updraftplus.php:
|
42 |
msgid "Plugins"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: updraftplus.php:
|
46 |
msgid "Themes"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: updraftplus.php:
|
50 |
msgid "Uploads"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: updraftplus.php:
|
54 |
msgid "Others"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: updraftplus.php:
|
58 |
msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: updraftplus.php:
|
62 |
msgid "Encryption error occurred when encrypting database. Encryption aborted."
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: updraftplus.php:
|
66 |
msgid "The backup apparently succeeded and is now complete"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: updraftplus.php:
|
70 |
msgid "The backup attempt has finished, apparently unsuccessfully"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: updraftplus.php:
|
74 |
msgid "The backup has not finished; a resumption is scheduled within 5 minutes"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: updraftplus.php:
|
78 |
msgid "Backed up"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: updraftplus.php:
|
82 |
msgid "WordPress backup is complete"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: updraftplus.php:
|
86 |
msgid "Backup contains"
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: updraftplus.php:
|
90 |
msgid "Latest status"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: updraftplus.php:
|
94 |
#, php-format
|
95 |
msgid "Backup directory (%s) is not writable, or does not exist."
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: updraftplus.php:
|
99 |
msgid "Could not read the directory"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: updraftplus.php:
|
103 |
msgid "Could not save backup history because we have no backup array. Backup probably failed."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: updraftplus.php:
|
107 |
msgid "Could not open the backup file for writing"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: updraftplus.php:
|
111 |
#, php-format
|
112 |
msgid "Generated: %s"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: updraftplus.php:
|
116 |
#, php-format
|
117 |
msgid "Hostname: %s"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: updraftplus.php:
|
121 |
#, php-format
|
122 |
msgid "Database: %s"
|
123 |
msgstr ""
|
124 |
|
125 |
-
#: updraftplus.php:
|
126 |
msgid "The backup directory is not writable."
|
127 |
msgstr ""
|
128 |
|
129 |
-
#: updraftplus.php:
|
130 |
#, php-format
|
131 |
msgid "Table: %s"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: updraftplus.php:
|
135 |
#, php-format
|
136 |
msgid "Skipping non-WP table: %s"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: updraftplus.php:
|
140 |
#, php-format
|
141 |
msgid "Delete any existing table %s"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: updraftplus.php:
|
145 |
#, php-format
|
146 |
msgid "Table structure of table %s"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: updraftplus.php:
|
150 |
#, php-format
|
151 |
msgid "Error with SHOW CREATE TABLE for %s."
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: updraftplus.php:
|
155 |
#, php-format
|
156 |
msgid "End of data contents of table %s"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: updraftplus.php:
|
160 |
-
#: includes/updraft-restorer.php:
|
161 |
msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: updraftplus.php:
|
165 |
-
#: includes/updraft-restorer.php:
|
166 |
msgid "Decryption failed. The most likely cause is that you used the wrong key."
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: updraftplus.php:
|
170 |
msgid "The decryption key used:"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: updraftplus.php:
|
174 |
msgid "File not found"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: updraftplus.php:
|
178 |
msgid "Can you translate? Want to improve UpdraftPlus for speakers of your language?"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: updraftplus.php:
|
182 |
msgid "Find UpdraftPlus useful?"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: updraftplus.php:
|
186 |
msgid "Please make a donation"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: updraftplus.php:
|
190 |
msgid "Like UpdraftPlus and can spare one minute?"
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: updraftplus.php:
|
194 |
msgid "Please help UpdraftPlus by giving a positive review at wordpress.org"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: updraftplus.php:
|
198 |
msgid "Need even more features and support? Check out UpdraftPlus Premium"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: updraftplus.php:
|
202 |
msgid "Check out UpdraftPlus.Com for help, add-ons and support"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: updraftplus.php:
|
206 |
msgid "Want to say thank-you for UpdraftPlus?"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: updraftplus.php:
|
210 |
msgid "Please buy our very cheap 'no adverts' add-on."
|
211 |
msgstr ""
|
212 |
|
@@ -219,791 +219,840 @@ msgstr ""
|
|
219 |
msgid "Could not create %s zip. Consult the log file for more information."
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: admin.php:
|
223 |
-
#: admin.php:
|
224 |
msgid "Allowed Files"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: admin.php:
|
228 |
msgid "Settings"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: admin.php:
|
232 |
msgid "Add-Ons / Pro Support"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: admin.php:
|
236 |
-
#: admin.php:
|
237 |
-
#: admin.php:
|
238 |
-
#: admin.php:
|
239 |
-
#: admin.php:
|
|
|
240 |
msgid "Warning"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: admin.php:
|
244 |
#, php-format
|
245 |
msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: admin.php:
|
249 |
#, php-format
|
250 |
msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: admin.php:
|
254 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
255 |
#, php-format
|
256 |
msgid "Click here to authenticate your %s account (you will not be able to back up to %s without it)."
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: admin.php:
|
260 |
#, php-format
|
261 |
msgid "The backup archive for restoring this file could not be found. The remote storage method in use (%s) does not allow us to retrieve files. To proceed with this restoration, you need to obtain a copy of this file and place it inside UpdraftPlus's working folder"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: admin.php:
|
265 |
msgid "Nothing yet logged"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: admin.php:
|
269 |
msgid "Download failed"
|
270 |
msgstr ""
|
271 |
|
272 |
-
#: admin.php:
|
273 |
-
#: admin.php:
|
274 |
msgid "File ready."
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: admin.php:
|
278 |
msgid "Download in progress"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: admin.php:
|
282 |
msgid "No local copy present."
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: admin.php:
|
286 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: admin.php:
|
290 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: admin.php:
|
294 |
msgid "Restore successful!"
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: admin.php:
|
298 |
-
#: admin.php:
|
299 |
-
#: admin.php:
|
300 |
msgid "Actions"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: admin.php:594
|
304 |
#: admin.php:609
|
305 |
-
#: admin.php:
|
306 |
-
#: admin.php:
|
|
|
307 |
msgid "Return to UpdraftPlus Configuration"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: admin.php:
|
311 |
msgid "Remove old directories"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: admin.php:
|
315 |
msgid "Old directories successfully removed."
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: admin.php:
|
319 |
msgid "Old directory removal failed for some reason. You may want to do this manually."
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: admin.php:
|
323 |
msgid "Backup directory could not be created"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: admin.php:
|
327 |
msgid "Backup directory successfully created."
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: admin.php:
|
331 |
msgid "Schedule backup"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: admin.php:
|
335 |
msgid "Failed."
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: admin.php:
|
339 |
msgid "OK. Now load any page from your site to make sure the schedule can trigger. You should then see activity in the \"Last log message\" field below."
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: admin.php:
|
343 |
msgid "Nothing happening? Follow this link for help."
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: admin.php:
|
347 |
msgid "Your settings have been wiped."
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: admin.php:
|
351 |
msgid "By UpdraftPlus.Com"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: admin.php:
|
355 |
msgid "Lead developer's homepage"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: admin.php:
|
359 |
msgid "Donate"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: admin.php:
|
363 |
msgid "Other WordPress plugins"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: admin.php:
|
367 |
msgid "Version"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: admin.php:
|
371 |
msgid "Your backup has been restored."
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: admin.php:
|
375 |
msgid "Your old (themes, uploads, plugins, whatever) directories have been retained with \"-old\" appended to their name. Remove them when you are satisfied that the backup worked properly."
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: admin.php:
|
379 |
msgid "Old directories successfully deleted."
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: admin.php:
|
383 |
msgid "Your PHP memory limit (set by your web hosting company) is quite 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 bhe successful with a 32Mb limit - your experience may vary)."
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: admin.php:
|
387 |
msgid "Current limit is:"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: admin.php:
|
391 |
msgid "Your PHP max_execution_time is less than 60 seconds. This possibly means you're running in safe_mode. Either disable safe_mode or modify your php.ini to set max_execution_time to a higher number. If you do not, then longer will be needed to complete a backup (but that is all). Present limit is:"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: admin.php:
|
395 |
msgid "seconds"
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: admin.php:
|
399 |
msgid "You have old directories from a previous backup (technical information: these are found in wp-content, and suffixed with -old). Use this button to delete them (if you have verified that the restoration worked)."
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: admin.php:
|
403 |
msgid "Delete Old Directories"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: admin.php:
|
407 |
msgid "Are you sure you want to delete the old directories? This cannot be undone."
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: admin.php:
|
411 |
msgid "Existing Schedule And Backups"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: admin.php:
|
415 |
msgid "JavaScript warning"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: admin.php:
|
419 |
msgid "This admin interface uses JavaScript heavily. You either need to activate it within your browser, or to use a JavaScript-capable browser."
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: admin.php:
|
423 |
-
#: admin.php:
|
424 |
msgid "Nothing currently scheduled"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: admin.php:
|
428 |
msgid "At the same time as the files backup"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: admin.php:
|
|
|
|
|
|
|
|
|
432 |
msgid "Next scheduled backups"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: admin.php:
|
436 |
msgid "Files"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: admin.php:
|
440 |
-
#: admin.php:
|
441 |
-
#: admin.php:
|
442 |
-
#: admin.php:
|
443 |
-
#: admin.php:
|
|
|
444 |
msgid "Database"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: admin.php:
|
448 |
msgid "Time now"
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: admin.php:
|
452 |
msgid "Last finished backup run"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: admin.php:
|
456 |
-
#: admin.php:
|
457 |
msgid "Backup Now"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: admin.php:
|
461 |
-
#: admin.php:
|
462 |
-
#: admin.php:
|
463 |
msgid "Restore"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: admin.php:
|
467 |
msgid "Last log message"
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: admin.php:
|
471 |
msgid "(Nothing yet logged)"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: admin.php:
|
475 |
msgid "Download most recently modified log file"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: admin.php:
|
479 |
msgid "Backups, logs & restoring"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: admin.php:
|
483 |
msgid "Press to see available backups"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: admin.php:
|
487 |
#, php-format
|
488 |
msgid "%d set(s) available"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: admin.php:
|
492 |
msgid "Downloading"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: admin.php:
|
496 |
msgid "Pressing a button for Database/Plugins/Themes/Uploads/Others will make UpdraftPlus try to bring the backup file back from the remote storage (if any - e.g. Amazon S3, Dropbox, Google Drive, FTP) to your webserver. Then you will be allowed to download it to your computer. If the fetch from the remote storage stops progressing (wait 30 seconds to make sure), then press again to resume. Remember that you can also visit the cloud storage vendor's website directly."
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: admin.php:
|
500 |
msgid "Restoring"
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: admin.php:
|
504 |
msgid "Press the button for the backup you wish to restore. If your site is large and you are using remote storage, then you should first click on each entity in order to retrieve it back to the webserver. This will prevent time-outs from occuring during the restore process itself."
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: admin.php:
|
508 |
msgid "More tasks:"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: admin.php:
|
512 |
msgid "upload backup files"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: admin.php:
|
516 |
msgid "Press here to look inside your UpdraftPlus directory (in your web hosting space) for any new backup sets that you have uploaded. The location of this directory is set in the expert settings, below."
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: admin.php:
|
520 |
msgid "rescan folder for new backup sets"
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: admin.php:
|
524 |
msgid "Opera web browser"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: admin.php:
|
528 |
msgid "If you are using this, then turn Turbo/Road mode off."
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: admin.php:
|
532 |
msgid "This is a count of the contents of your Updraft directory"
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: admin.php:
|
536 |
msgid "Web-server disk space in use by UpdraftPlus"
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: admin.php:
|
540 |
msgid "refresh"
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: admin.php:
|
544 |
msgid "UpdraftPlus - Upload backup files"
|
545 |
msgstr ""
|
546 |
|
547 |
-
#: admin.php:
|
548 |
msgid "Upload files into UpdraftPlus. Use this to import backups made on a different WordPress installation."
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: admin.php:
|
552 |
msgid "Drop backup zips here"
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: admin.php:
|
556 |
-
#: admin.php:
|
557 |
msgid "or"
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: admin.php:
|
561 |
msgid "calculating..."
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: admin.php:
|
565 |
-
#: admin.php:
|
566 |
msgid "Error:"
|
567 |
msgstr ""
|
568 |
|
569 |
-
#: admin.php:
|
570 |
msgid "You should:"
|
571 |
msgstr ""
|
572 |
|
573 |
-
#: admin.php:
|
574 |
msgid "Download error: the server sent us a response (JSON) which we did not understand"
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: admin.php:
|
578 |
msgid "Download error: the server sent us a response which we did not understand."
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: admin.php:
|
582 |
msgid "Restore backup"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: admin.php:
|
586 |
msgid "Restore backup from"
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: admin.php:
|
590 |
-
msgid "Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: admin.php:
|
594 |
msgid "Choose the components to restore"
|
595 |
msgstr ""
|
596 |
|
597 |
-
#: admin.php:
|
598 |
msgid "Your web server has PHP's so-called safe_mode active."
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: admin.php:
|
602 |
msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time, <a href=\"http://updraftplus.com/faqs/i-want-to-restore-but-have-either-cannot-or-have-failed-to-do-so-from-the-wp-admin-console/\">or to restore manually</a>."
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
606 |
msgid "Perform a backup now"
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: admin.php:
|
610 |
msgid "This will schedule a one-time backup. To proceed, press 'Backup Now', then wait 10 seconds, then visit any page on your site. WordPress should then start the backup running in the background."
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: admin.php:
|
614 |
msgid "Does nothing happen when you schedule backups?"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: admin.php:
|
618 |
msgid "Go here for help."
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: admin.php:
|
622 |
msgid "Multisite"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: admin.php:
|
626 |
msgid "Do you need WordPress Multisite support?"
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: admin.php:
|
630 |
msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: admin.php:
|
634 |
msgid "Configure Backup Contents And Schedule"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: admin.php:
|
638 |
msgid "Debug Information And Expert Options"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: admin.php:
|
642 |
msgid "Peak memory usage"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: admin.php:
|
646 |
msgid "Current memory usage"
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: admin.php:
|
650 |
msgid "PHP memory limit"
|
651 |
msgstr ""
|
652 |
|
653 |
-
#: admin.php:
|
654 |
msgid "The buttons below will immediately execute a backup run, independently of WordPress's scheduler. If these work whilst your scheduled backups and the \"Backup Now\" button do absolutely nothing (i.e. not even produce a log file), then it means that your scheduler is broken. You should then disable all your other plugins, and try the \"Backup Now\" button. If that fails, then contact your web hosting company and ask them if they have disabled wp-cron. If it succeeds, then re-activate your other plugins one-by-one, and find the one that is the problem and report a bug to them."
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: admin.php:
|
658 |
msgid "Debug Full Backup"
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: admin.php:
|
662 |
msgid "This will cause an immediate backup. The page will stall loading until it finishes (ie, unscheduled)."
|
663 |
msgstr ""
|
664 |
|
665 |
-
#: admin.php:
|
666 |
msgid "Debug Database Backup"
|
667 |
msgstr ""
|
668 |
|
669 |
-
#: admin.php:
|
670 |
msgid "This will cause an immediate DB backup. The page will stall loading until it finishes (ie, unscheduled). The backup may well run out of time; really this button is only helpful for checking that the backup is able to get through the initial stages, or for small WordPress sites.."
|
671 |
msgstr ""
|
672 |
|
673 |
-
#: admin.php:
|
674 |
msgid "Wipe Settings"
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: admin.php:
|
678 |
msgid "This button will delete all UpdraftPlus settings (but not any of your existing backups from your cloud storage). You will then need to enter all your settings again. You can also do this before deactivating/deinstalling UpdraftPlus if you wish."
|
679 |
msgstr ""
|
680 |
|
681 |
-
#: admin.php:
|
682 |
msgid "Wipe All Settings"
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: admin.php:
|
686 |
msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: admin.php:
|
690 |
msgid "Delete"
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: admin.php:
|
694 |
msgid "Download log file"
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: admin.php:
|
698 |
msgid "No backup has been completed."
|
699 |
msgstr ""
|
700 |
|
701 |
-
#: admin.php:
|
702 |
msgid "File backup intervals"
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: admin.php:
|
706 |
msgid "Manual"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: admin.php:
|
710 |
msgid "Every 4 hours"
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: admin.php:
|
714 |
msgid "Every 8 hours"
|
715 |
msgstr ""
|
716 |
|
717 |
-
#: admin.php:
|
718 |
msgid "Every 12 hours"
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: admin.php:
|
722 |
msgid "Daily"
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: admin.php:
|
726 |
msgid "Weekly"
|
727 |
msgstr ""
|
728 |
|
729 |
-
#: admin.php:
|
730 |
msgid "Fortnightly"
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: admin.php:
|
734 |
msgid "Monthly"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: admin.php:
|
738 |
-
#: admin.php:
|
739 |
msgid "and retain this many backups"
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: admin.php:
|
743 |
msgid "Database backup intervals"
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: admin.php:
|
747 |
msgid "If you would like to automatically schedule backups, choose schedules from the dropdowns above. Backups will occur at the intervals specified. If the two schedules are the same, then the two backups will take place together. If you choose \"manual\" then you must click the \"Backup Now\" button whenever you wish a backup to occur."
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: admin.php:
|
751 |
msgid "To fix the time at which a backup should take place,"
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: admin.php:
|
755 |
msgid "e.g. if your server is busy at day and you want to run overnight"
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: admin.php:
|
759 |
msgid "use the \"Fix Time\" add-on"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: admin.php:
|
763 |
msgid "Include in files backup"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: admin.php:
|
767 |
-
msgid "Any other directories found inside wp-content
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: admin.php:
|
771 |
msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: admin.php:
|
775 |
msgid "Or, get the \"More Files\" add-on from our shop."
|
776 |
msgstr ""
|
777 |
|
778 |
-
#: admin.php:
|
779 |
msgid "Use WordShell for automatic backup, version control and patching"
|
780 |
msgstr ""
|
781 |
|
782 |
-
#: admin.php:
|
783 |
msgid "Email"
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: admin.php:
|
787 |
msgid "Enter an address here to have a report sent (and the whole backup, if you choose) to it."
|
788 |
msgstr ""
|
789 |
|
790 |
-
#: admin.php:
|
791 |
msgid "Database encryption phrase"
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: admin.php:
|
795 |
msgid "If you enter text here, it is used to encrypt backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> Presently, only the database file is encrypted. This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: admin.php:
|
799 |
msgid "You can also decrypt a database manually here."
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: admin.php:
|
803 |
msgid "Manually decrypt a database backup file"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: admin.php:
|
807 |
msgid "Drop encrypted database files (db.crypt.gz files) here to upload them for decryption"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: admin.php:
|
811 |
msgid "Use decryption key"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: admin.php:
|
815 |
msgid "Copying Your Backup To Remote Storage"
|
816 |
msgstr ""
|
817 |
|
818 |
-
#: admin.php:
|
819 |
msgid "Choose your remote storage"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: admin.php:
|
823 |
msgid "None"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: admin.php:
|
827 |
-
#: admin.php:
|
828 |
msgid "Cancel"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: admin.php:
|
832 |
msgid "Advanced / Debugging Settings"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: admin.php:
|
836 |
msgid "Debug mode"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: admin.php:
|
840 |
msgid "Check this to receive more information and emails on the backup process - useful if something is going wrong. You <strong>must</strong> send us this log if you are filing a bug report."
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: admin.php:
|
844 |
msgid "Expert settings"
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: admin.php:
|
848 |
msgid "Show expert settings"
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: admin.php:
|
852 |
msgid "click this to show some further options; don't bother with this unless you have a problem or are curious."
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: admin.php:
|
856 |
msgid "Delete local backup"
|
857 |
msgstr ""
|
858 |
|
859 |
-
#: admin.php:
|
860 |
msgid "Uncheck this to prevent deletion of any superfluous backup files from your server after the backup run finishes (i.e. any files despatched remotely will also remain locally, and any files being kept locally will not be subject to the retention limits)."
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: admin.php:
|
864 |
msgid "Backup directory"
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: admin.php:
|
868 |
msgid "Backup directory specified is writable, which is good."
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: admin.php:
|
872 |
msgid "Backup directory specified is <b>not</b> writable, or does not exist."
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: admin.php:
|
876 |
msgid "Click here to attempt to create the directory and set the permissions"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: admin.php:
|
880 |
msgid "or, to reset this option"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: admin.php:
|
884 |
msgid "click here"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: admin.php:
|
888 |
msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: admin.php:
|
892 |
msgid "This is where UpdraftPlus will write the zip files it creates initially. This directory must be writable by your web server. Typically you'll want to have it inside your wp-content folder (this is the default). <b>Do not</b> place it inside your uploads dir, as that will cause recursion issues (backups of backups of backups of...)."
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: admin.php:
|
896 |
msgid "Use the server's SSL certificates"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: admin.php:
|
900 |
msgid "By default UpdraftPlus uses its own store of SSL certificates to verify the identity of remote sites (i.e. to make sure it is talking to the real Dropbox, Amazon S3, etc., and not an attacker). We keep these up to date. However, if you get an SSL error, then choosing this option (which causes UpdraftPlus to use your web server's collection instead) may help."
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: admin.php:
|
904 |
msgid "Do not verify SSL certificates"
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: admin.php:
|
908 |
msgid "Choosing this option lowers your security by stopping UpdraftPlus from verifying the identity of encrypted sites that it connects to (e.g. Dropbox, Google Drive). It means that UpdraftPlus will be using SSL only for encryption of traffic, and not for authentication."
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: admin.php:
|
912 |
msgid "Note that not all cloud backup methods are necessarily using SSL authentication."
|
913 |
msgstr ""
|
914 |
|
915 |
-
#: admin.php:
|
916 |
msgid "Disable SSL entirely where possible"
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: admin.php:
|
920 |
msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: admin.php:
|
924 |
msgid "Save Changes"
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: admin.php:
|
928 |
#, php-format
|
929 |
msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support."
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: admin.php:
|
933 |
#, php-format
|
934 |
msgid "UpdraftPlus's %s module <strong>requires</strong> Curl. Your only options to get this working are 1) Install/enable curl or 2) Hire us or someone else to code additional support options into UpdraftPlus. 3) Wait, possibly forever, for someone else to do this."
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: admin.php:
|
938 |
#, php-format
|
939 |
msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: admin.php:
|
943 |
#, php-format
|
944 |
msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: admin.php:
|
948 |
#, php-format
|
949 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: admin.php:
|
953 |
msgid "Press here to download"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: admin.php:
|
957 |
#, php-format
|
958 |
msgid "(No %s)"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: admin.php:
|
962 |
msgid "Backup Log"
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: admin.php:
|
966 |
msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: admin.php:
|
970 |
msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: admin.php:
|
974 |
msgid "UpdraftPlus Restoration: Progress"
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: admin.php:
|
978 |
msgid "ABORT: Could not find the information on which entities to restore."
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: admin.php:
|
|
|
|
|
|
|
|
|
982 |
msgid "This component was not selected for restoration - skipping."
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: admin.php:
|
986 |
msgid "File is not locally present - needs retrieving from remote storage (for large files, it is better to do this in advance from the download console)"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: admin.php:
|
990 |
msgid "Archive is expected to be size:"
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: admin.php:
|
994 |
msgid "ERROR"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: admin.php:
|
998 |
msgid "The backup records do not contain information about the proper size of this file."
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: admin.php:
|
1002 |
msgid "Error message"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: admin.php:
|
1006 |
-
#: admin.php:
|
1007 |
msgid "Could not find one of the files for restoration"
|
1008 |
msgstr ""
|
1009 |
|
@@ -1059,57 +1108,65 @@ msgstr ""
|
|
1059 |
msgid "Failed to delete working directory after restoring."
|
1060 |
msgstr ""
|
1061 |
|
1062 |
-
#: includes/updraft-restorer.php:
|
1063 |
msgid "Failed to create a temporary directory"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#: includes/updraft-restorer.php:
|
1067 |
msgid "Failed to write out the decrypted database to the filesystem"
|
1068 |
msgstr ""
|
1069 |
|
1070 |
-
#: includes/updraft-restorer.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1071 |
msgid "Will not delete the archive after unpacking it, because there was no cloud storage for this backup"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
-
#: includes/updraft-restorer.php:
|
1075 |
msgid "Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method."
|
1076 |
msgstr ""
|
1077 |
|
1078 |
-
#: includes/updraft-restorer.php:
|
1079 |
msgid "Failed to find database file"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
-
#: includes/updraft-restorer.php:
|
1083 |
msgid "Failed to open database file"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: includes/updraft-restorer.php:
|
1087 |
msgid "Database access: Direct MySQL access is not available, so we are falling back to wpdb (this will be considerably slower)"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
-
#: includes/updraft-restorer.php:
|
1091 |
msgid "Restoring table"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#: includes/updraft-restorer.php:
|
1095 |
#, php-format
|
1096 |
msgid "An error (%s) occured:"
|
1097 |
msgstr ""
|
1098 |
|
1099 |
-
#: includes/updraft-restorer.php:
|
1100 |
-
msgid "the database query being run was:
|
1101 |
msgstr ""
|
1102 |
|
1103 |
-
#: includes/updraft-restorer.php:
|
1104 |
msgid "Too many database errors have occurred - aborting restoration (you will need to restore manually)"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: includes/updraft-restorer.php:
|
1108 |
#, php-format
|
1109 |
msgid "Database lines processed: %d in %.2f seconds"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
-
#: includes/updraft-restorer.php:
|
1113 |
#, php-format
|
1114 |
msgid "Finished: lines processed: %d in %.2f seconds"
|
1115 |
msgstr ""
|
@@ -1135,258 +1192,273 @@ msgstr ""
|
|
1135 |
msgid "follow this link to get it"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
-
#: methods/googledrive.php:
|
1139 |
-
|
1140 |
-
|
|
|
|
|
|
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: methods/googledrive.php:
|
1144 |
#, php-format
|
1145 |
-
msgid "
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: methods/googledrive.php:
|
1149 |
-
#: methods/
|
1150 |
-
|
1151 |
-
#: methods/googledrive.php:351
|
1152 |
-
#: methods/googledrive.php:355
|
1153 |
-
#: methods/googledrive.php:359
|
1154 |
-
msgid "Google Drive"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#: methods/googledrive.php:
|
1158 |
-
|
|
|
1159 |
msgstr ""
|
1160 |
|
1161 |
-
#: methods/googledrive.php:
|
1162 |
-
|
|
|
|
|
|
|
|
|
|
|
1163 |
msgstr ""
|
1164 |
|
1165 |
-
#: methods/googledrive.php:
|
1166 |
msgid "Have not yet obtained an access token from Google - you need to authorise or re-authorise your connection to Google Drive."
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#: methods/googledrive.php:
|
1170 |
-
#: methods/googledrive.php:
|
1171 |
msgid "Have not yet obtained an access token from Google (has the user authorised?)"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: methods/googledrive.php:
|
|
|
|
|
|
|
|
|
|
|
1175 |
#, php-format
|
1176 |
msgid "Failed to upload to %s"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
-
#: methods/googledrive.php:
|
1180 |
msgid "Error"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: methods/googledrive.php:
|
1184 |
-
|
|
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: methods/googledrive.php:
|
1188 |
#, php-format
|
1189 |
msgid "Google Drive error: %d: could not download: could not find a record of the Google Drive file ID for this file"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#: methods/googledrive.php:
|
1193 |
#, php-format
|
1194 |
msgid "Could not find %s in order to download it"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: methods/googledrive.php:
|
1198 |
msgid "Google Drive "
|
1199 |
msgstr ""
|
1200 |
|
1201 |
-
#: methods/googledrive.php:
|
1202 |
msgid "error: zero-size file was downloaded"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
-
#: methods/googledrive.php:
|
1206 |
msgid "Account is not authorized."
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#: methods/googledrive.php:
|
1210 |
-
#: methods/cloudfiles.php:
|
1211 |
#, php-format
|
1212 |
-
msgid "%s is a great choice, because UpdraftPlus supports chunked uploads - no matter how big your
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: methods/googledrive.php:
|
1216 |
msgid "For longer help, including screenshots, follow this link. The description below is sufficient for more expert users."
|
1217 |
msgstr ""
|
1218 |
|
1219 |
-
#: methods/googledrive.php:
|
1220 |
msgid "Follow this link to your Google API Console, and there create a Client ID in the API Access section."
|
1221 |
msgstr ""
|
1222 |
|
1223 |
-
#: methods/googledrive.php:
|
1224 |
msgid "Select 'Web Application' as the application type."
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#: methods/googledrive.php:
|
1228 |
msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: methods/googledrive.php:
|
1232 |
-
msgid "N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your client ID; you must create a new one from your Google API console for each
|
1233 |
msgstr ""
|
1234 |
|
1235 |
-
#: methods/googledrive.php:
|
1236 |
msgid "You do not have the SimpleXMLElement installed. Google Drive backups will <b>not</b> work until you do."
|
1237 |
msgstr ""
|
1238 |
|
1239 |
-
#: methods/googledrive.php:
|
1240 |
msgid "Client ID"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
-
#: methods/googledrive.php:
|
1244 |
msgid "If Google later shows you the message \"invalid_client\", then you did not enter a valid client ID here."
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: methods/googledrive.php:
|
1248 |
msgid "Client Secret"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
-
#: methods/googledrive.php:
|
1252 |
msgid "Folder ID"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: methods/googledrive.php:
|
1256 |
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)"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: methods/googledrive.php:
|
1260 |
msgid "Authenticate with Google"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: methods/googledrive.php:
|
1264 |
msgid "<strong>After</strong> you have saved your settings (by clicking 'Save Changes' below), then come back here once and click this link to complete authentication with Google."
|
1265 |
msgstr ""
|
1266 |
|
1267 |
#: methods/cloudfiles.php:58
|
1268 |
#: methods/cloudfiles.php:62
|
1269 |
-
#: methods/cloudfiles.php:
|
1270 |
-
#: methods/cloudfiles.php:
|
1271 |
-
#: methods/cloudfiles.php:
|
1272 |
-
#: methods/cloudfiles.php:
|
1273 |
-
#: methods/cloudfiles.php:
|
1274 |
msgid "Cloud Files authentication failed"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
#: methods/cloudfiles.php:66
|
1278 |
-
#: methods/cloudfiles.php:
|
1279 |
-
#: methods/cloudfiles.php:
|
1280 |
msgid "Cloud Files error - failed to create and access the container"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: methods/cloudfiles.php:
|
1284 |
#, php-format
|
1285 |
msgid "%s Error: Failed to open local file"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: methods/cloudfiles.php:
|
1289 |
-
#: methods/cloudfiles.php:
|
1290 |
#, php-format
|
1291 |
msgid "%s Error: Failed to upload"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
-
#: methods/cloudfiles.php:
|
1295 |
msgid "Cloud Files error - failed to re-assemble chunks"
|
1296 |
msgstr ""
|
1297 |
|
1298 |
-
#: methods/cloudfiles.php:
|
1299 |
-
#: methods/cloudfiles.php:
|
1300 |
msgid "Cloud Files error - failed to upload file"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: methods/cloudfiles.php:
|
1304 |
-
#: methods/cloudfiles.php:
|
1305 |
msgid "Cloud Files Error"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
-
#: methods/cloudfiles.php:
|
1309 |
msgid "Error opening local file: Failed to download"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: methods/cloudfiles.php:
|
1313 |
msgid "Error downloading remote file: Failed to download ("
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#: methods/cloudfiles.php:
|
1317 |
msgid "Cloud Files error - no such file exists at Cloud Files"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#: methods/cloudfiles.php:
|
1321 |
-
#: methods/cloudfiles.php:301
|
1322 |
msgid "Cloud Files error - failed to download the file"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
-
#: methods/cloudfiles.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1326 |
msgid "Get your API key <a href=\"https://mycloud.rackspace.com/\">from your Rackspace Cloud console</a> (read instructions <a href=\"http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key\">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist."
|
1327 |
msgstr ""
|
1328 |
|
1329 |
-
#: methods/cloudfiles.php:
|
1330 |
msgid "Also, you should read this important FAQ."
|
1331 |
msgstr ""
|
1332 |
|
1333 |
-
#: methods/cloudfiles.php:
|
1334 |
msgid "US or UK Cloud"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: methods/cloudfiles.php:
|
1338 |
msgid "US (default)"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: methods/cloudfiles.php:
|
1342 |
msgid "UK"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
-
#: methods/cloudfiles.php:
|
1346 |
msgid "Cloud Files username"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
-
#: methods/cloudfiles.php:
|
1350 |
msgid "Cloud Files API key"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#: methods/cloudfiles.php:
|
1354 |
msgid "Cloud Files container"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: methods/cloudfiles.php:
|
1358 |
#, php-format
|
1359 |
msgid "UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative."
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#: methods/cloudfiles.php:
|
1363 |
-
|
1364 |
-
msgid "Test %s Settings"
|
1365 |
-
msgstr ""
|
1366 |
-
|
1367 |
-
#: methods/cloudfiles.php:395
|
1368 |
-
#: methods/cloudfiles.php:400
|
1369 |
#, php-format
|
1370 |
msgid "Failure: No %s was given."
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: methods/cloudfiles.php:
|
1374 |
msgid "API key"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: methods/cloudfiles.php:
|
1378 |
msgid "Username"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
-
#: methods/cloudfiles.php:
|
1382 |
msgid "Failure: No container details were given."
|
1383 |
msgstr ""
|
1384 |
|
1385 |
-
#: methods/cloudfiles.php:
|
1386 |
msgid "Cloud Files error - we accessed the container, but failed to create a file within it"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
-
#: methods/cloudfiles.php:
|
1390 |
msgid "We accessed the container, and were able to create files within it."
|
1391 |
msgstr ""
|
1392 |
|
@@ -1505,52 +1577,62 @@ msgid "The communication with %s was not encrypted."
|
|
1505 |
msgstr ""
|
1506 |
|
1507 |
#: methods/dropbox.php:35
|
1508 |
-
|
|
|
|
|
|
|
|
|
|
|
1509 |
msgid "You do not appear to be authenticated with Dropbox"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
-
#: methods/dropbox.php:
|
1513 |
#, php-format
|
1514 |
msgid "error: %s (see log file for more)"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
-
#: methods/dropbox.php:
|
1518 |
-
#: methods/dropbox.php:
|
1519 |
#, php-format
|
1520 |
msgid "error: failed to upload file to %s (see log file for more)"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: methods/dropbox.php:
|
1524 |
msgid "Need to use sub-folders?"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
-
#: methods/dropbox.php:
|
1528 |
msgid "Backups are saved in"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
-
#: methods/dropbox.php:
|
1532 |
msgid "If you back up several sites into the same Dropbox and want to organise with sub-folders, then "
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: methods/dropbox.php:
|
1536 |
msgid "there's an add-on for that."
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: methods/dropbox.php:
|
1540 |
msgid "Authenticate with Dropbox"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
-
#: methods/dropbox.php:
|
1544 |
msgid "<strong>After</strong> you have saved your settings (by clicking 'Save Changes' below), then come back here once and click this link to complete authentication with Dropbox."
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: methods/dropbox.php:
|
|
|
|
|
|
|
|
|
|
|
1548 |
msgid "though part of the returned information was not as expected - your mileage may vary"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#: methods/dropbox.php:
|
1552 |
#, php-format
|
1553 |
-
msgid "Your %s account name"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
#: methods/ftp.php:30
|
@@ -1650,30 +1732,72 @@ msgstr ""
|
|
1650 |
msgid "Enter a complete URL, beginning with webdav:// or webdavs:// and including path, username, password and port as required - e.g.%s"
|
1651 |
msgstr ""
|
1652 |
|
1653 |
-
#: addons/webdav.php:
|
1654 |
-
#: addons/sftp.php:
|
1655 |
msgid "Failed"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
-
#: addons/webdav.php:
|
1659 |
msgid "Failed: We were not able to place a file in that directory - please check your credentials."
|
1660 |
msgstr ""
|
1661 |
|
1662 |
-
#: addons/morefiles.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1663 |
msgid "The above files comprise everything in a WordPress installation."
|
1664 |
msgstr ""
|
1665 |
|
1666 |
-
#: addons/morefiles.php:
|
1667 |
msgid "WordPress core (including any additions to your WordPress root directory)"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: addons/morefiles.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1671 |
#, php-format
|
1672 |
msgid "No backup of %s directories: there was nothing found to back up"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: addons/morefiles.php:
|
1676 |
-
msgid "
|
1677 |
msgstr ""
|
1678 |
|
1679 |
#: addons/sftp.php:23
|
@@ -1704,7 +1828,7 @@ msgid "SFTP password"
|
|
1704 |
msgstr ""
|
1705 |
|
1706 |
#: addons/sftp.php:50
|
1707 |
-
#: addons/sftp.php:
|
1708 |
msgid "Check your file permissions: Could not successfully create and enter:"
|
1709 |
msgstr ""
|
1710 |
|
@@ -1737,23 +1861,23 @@ msgstr ""
|
|
1737 |
msgid "Where to change directory to after logging in - often this is relative to your home directory."
|
1738 |
msgstr ""
|
1739 |
|
1740 |
-
#: addons/sftp.php:
|
1741 |
msgid "host name"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
-
#: addons/sftp.php:
|
1745 |
msgid "username"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
-
#: addons/sftp.php:
|
1749 |
msgid "password"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
-
#: addons/sftp.php:
|
1753 |
msgid "Failure: Port must be an integer."
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: addons/sftp.php:
|
1757 |
msgid "Failed: We were able to log in and move to the indicated directory, but failed to successfully created a file in that location."
|
1758 |
msgstr ""
|
1759 |
|
@@ -1767,26 +1891,119 @@ msgstr ""
|
|
1767 |
msgid "Enter in format HH:MM (e.g. 14:22)"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: addons/multisite.php:
|
1771 |
msgid "Multisite Install"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
-
#: addons/multisite.php:
|
1775 |
msgid "You do not have sufficient permissions to access this page."
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: addons/multisite.php:
|
1779 |
msgid "You do not have permission to access this page."
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: addons/multisite.php:
|
1783 |
msgid "Must-use plugins"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
-
#: addons/multisite.php: |