Version Description
= 3.4 =
- This version introduces a major refactoring of the code responsible for the core backup engine. We made sure to write unit tests for the new code, and we have tested it on several user's sites. It fixes a lot of old bugs, and Windows users should see major improvements to reliability.
= 3.3.4 =
- WordPress 4.4 compatibility.
= 3.3.1 =
- Fixes a bug that would prevent downloading backups since 3.3.0 - please update.
= 3.2.5 =
- Security fixes related to add_query_arg
= 3.2.1 =
- Important bug fixes. Please upgrade to this version to avoid incomplete or broken backups.
= 3.1.3 =
- Fixes backwards compatibility for add-ons and avoids a Fatal Error. Please upgrade straight to this version before upgrading your add-ons.
= 3.0.4 =
- Fixes a few minor bugs. Immediate update is recommended.
= 3.0.2 =
- Important: we have dropped support for PHP 5.2, you will not be able to activate BackUpWordPress on a server running PHP versions older than PHP 5.3.29
= 3.0.1 =
- This is a critical update. Fixes a bug in the core backup library. Please update immediately.
Download this release
Release Info
Developer | pauldewouters |
Plugin | BackUpWordPress |
Version | 3.5 |
Comparing to | |
See all releases |
Code changes from version 3.5-beta to 3.5
- admin/schedule-form-excludes.php +64 -68
- backupwordpress.php +1 -1
- classes/class-plugin.php +1 -1
- classes/class-scheduled-backup.php +1 -1
- composer.json +1 -1
- functions/core.php +2 -2
- functions/interface.php +24 -4
- languages/backupwordpress.pot +24 -20
- readme.txt +15 -1
admin/schedule-form-excludes.php
CHANGED
@@ -17,56 +17,56 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
17 |
|
18 |
<tbody>
|
19 |
|
20 |
-
|
21 |
|
22 |
-
|
23 |
|
24 |
-
|
25 |
|
26 |
-
|
27 |
|
28 |
-
|
29 |
|
30 |
-
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
35 |
|
36 |
-
|
37 |
|
38 |
-
|
39 |
|
40 |
-
|
41 |
|
42 |
-
|
43 |
|
44 |
-
|
45 |
|
46 |
-
|
47 |
|
48 |
-
|
49 |
|
50 |
-
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
55 |
|
56 |
-
|
57 |
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
|
63 |
-
|
64 |
|
65 |
-
|
66 |
|
67 |
-
|
68 |
|
69 |
-
|
70 |
|
71 |
</tbody>
|
72 |
|
@@ -93,10 +93,11 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
93 |
|
94 |
$exclude_string = implode( '|', $excludes->get_excludes_for_regex() );
|
95 |
|
96 |
-
$site_size = new Site_Size;
|
|
|
97 |
|
98 |
// Kick off a recursive filesize scan
|
99 |
-
$files = list_directory_by_total_filesize( $directory ); ?>
|
100 |
|
101 |
<table class="widefat">
|
102 |
|
@@ -105,7 +106,7 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
105 |
<tr>
|
106 |
<th></th>
|
107 |
<th scope="col"><?php _e( 'Name', 'backupwordpress' ); ?></th>
|
108 |
-
<th scope="col" class="column-format"><?php _e( 'Size', 'backupwordpress' ); ?></th>
|
109 |
<th scope="col" class="column-format"><?php _e( 'Permissions', 'backupwordpress' ); ?></th>
|
110 |
<th scope="col" class="column-format"><?php _e( 'Type', 'backupwordpress' ); ?></th>
|
111 |
<th scope="col" class="column-format"><?php _e( 'Status', 'backupwordpress' ); ?></th>
|
@@ -154,40 +155,31 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
154 |
$root = new \SplFileInfo( Path::get_root() );
|
155 |
|
156 |
$size = $site_size->filesize( $root );
|
157 |
-
|
158 |
-
if ( false !== $size ) {
|
159 |
-
|
160 |
-
$size = size_format( $size );
|
161 |
-
|
162 |
-
if ( ! $size ) {
|
163 |
-
$size = '0 B';
|
164 |
-
} ?>
|
165 |
|
166 |
<code>
|
167 |
-
|
168 |
-
<?php echo esc_html( $size ); ?>
|
169 |
-
|
170 |
-
<a class="dashicons dashicons-update"
|
171 |
-
href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'hmbkp_recalculate_directory_filesize', urlencode( Path::get_root() ) ), 'hmbkp-recalculate_directory_filesize' ) ); ?>"><span><?php _e( 'Refresh', 'backupwordpress' ); ?></span></a>
|
172 |
-
|
173 |
</code>
|
174 |
|
175 |
-
|
176 |
-
<?php } ?>
|
177 |
-
|
178 |
<?php } ?>
|
179 |
|
180 |
<td>
|
181 |
-
|
182 |
</td>
|
183 |
|
184 |
<td>
|
185 |
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
|
|
|
|
|
|
|
|
191 |
|
192 |
</td>
|
193 |
|
@@ -265,19 +257,19 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
265 |
|
266 |
if ( false !== $size ) {
|
267 |
|
268 |
-
$size = size_format( $size );
|
269 |
-
|
270 |
-
if ( ! $size ) {
|
271 |
-
$size = '0 B';
|
272 |
-
} ?>
|
273 |
|
274 |
<code>
|
275 |
|
276 |
-
<?php
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
|
|
|
|
|
|
281 |
|
282 |
</code>
|
283 |
|
@@ -291,13 +283,17 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
291 |
</td>
|
292 |
|
293 |
<td>
|
294 |
-
|
295 |
-
|
296 |
-
|
|
|
|
|
|
|
|
|
297 |
</td>
|
298 |
|
299 |
<td>
|
300 |
-
|
301 |
<?php if ( $file->isLink() ) { ?>
|
302 |
|
303 |
<span title="<?php echo esc_attr( wp_normalize_path( $file->getRealPath() ) ); ?>"><?php _e( 'Symlink', 'backupwordpress' ); ?></span>
|
@@ -307,7 +303,7 @@ $user_excludes = $excludes->get_user_excludes(); ?>
|
|
307 |
} else {
|
308 |
_e( 'File', 'backupwordpress' );
|
309 |
} ?>
|
310 |
-
|
311 |
</td>
|
312 |
|
313 |
<td class="column-format">
|
17 |
|
18 |
<tbody>
|
19 |
|
20 |
+
<?php foreach ( $user_excludes as $key => $exclude ) :
|
21 |
|
22 |
+
$exclude_path = new \SplFileInfo( trailingslashit( Path::get_root() ) . ltrim( str_ireplace( Path::get_root(), '', $exclude ), '/' ) ); ?>
|
23 |
|
24 |
+
<tr>
|
25 |
|
26 |
+
<th scope="row">
|
27 |
|
28 |
+
<?php if ( $exclude_path->isFile() ) { ?>
|
29 |
|
30 |
+
<div class="dashicons dashicons-media-default"></div>
|
31 |
|
32 |
+
<?php } elseif ( $exclude_path->isDir() ) { ?>
|
33 |
|
34 |
+
<div class="dashicons dashicons-portfolio"></div>
|
35 |
|
36 |
+
<?php } ?>
|
37 |
|
38 |
+
</th>
|
39 |
|
40 |
+
<td>
|
41 |
|
42 |
+
<code><?php echo esc_html( str_ireplace( Path::get_root(), '', $exclude ) ); ?></code>
|
43 |
|
44 |
+
</td>
|
45 |
|
46 |
+
<td>
|
47 |
|
48 |
+
<?php if ( ( in_array( $exclude, $excludes->get_default_excludes() ) ) || ( Path::get_path() === trailingslashit( Path::get_root() ) . untrailingslashit( $exclude ) ) ) : ?>
|
49 |
|
50 |
+
<?php _e( 'Default rule', 'backupwordpress' ); ?>
|
51 |
|
52 |
+
<?php elseif ( defined( 'HMBKP_EXCLUDE' ) && false !== strpos( HMBKP_EXCLUDE, $exclude ) ) : ?>
|
53 |
|
54 |
+
<?php _e( 'Defined in wp-config.php', 'backupwordpress' ); ?>
|
55 |
|
56 |
+
<?php else : ?>
|
57 |
|
58 |
+
<a href="<?php echo admin_action_url( 'remove_exclude_rule', array(
|
59 |
+
'hmbkp_remove_exclude' => $exclude,
|
60 |
+
'hmbkp_schedule_id' => $schedule->get_id(),
|
61 |
+
) ); ?>" class="delete-action"><?php _e( 'Stop excluding', 'backupwordpress' ); ?></a>
|
62 |
|
63 |
+
<?php endif; ?>
|
64 |
|
65 |
+
</td>
|
66 |
|
67 |
+
</tr>
|
68 |
|
69 |
+
<?php endforeach; ?>
|
70 |
|
71 |
</tbody>
|
72 |
|
93 |
|
94 |
$exclude_string = implode( '|', $excludes->get_excludes_for_regex() );
|
95 |
|
96 |
+
$site_size = new Site_Size( 'file' );
|
97 |
+
$excluded_site_size = new Site_Size( 'file', $excludes );
|
98 |
|
99 |
// Kick off a recursive filesize scan
|
100 |
+
$files = list_directory_by_total_filesize( $directory, $excludes ); ?>
|
101 |
|
102 |
<table class="widefat">
|
103 |
|
106 |
<tr>
|
107 |
<th></th>
|
108 |
<th scope="col"><?php _e( 'Name', 'backupwordpress' ); ?></th>
|
109 |
+
<th scope="col" class="column-format"><?php _e( 'Included Size', 'backupwordpress' ); ?></th>
|
110 |
<th scope="col" class="column-format"><?php _e( 'Permissions', 'backupwordpress' ); ?></th>
|
111 |
<th scope="col" class="column-format"><?php _e( 'Type', 'backupwordpress' ); ?></th>
|
112 |
<th scope="col" class="column-format"><?php _e( 'Status', 'backupwordpress' ); ?></th>
|
155 |
$root = new \SplFileInfo( Path::get_root() );
|
156 |
|
157 |
$size = $site_size->filesize( $root );
|
158 |
+
$excluded_size = $excluded_site_size->filesize( $root ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
|
160 |
<code>
|
161 |
+
<?php $excluded_size = is_same_size_format( $size, $excluded_size ) ? (int) size_format( $excluded_size ) : size_format( $excluded_size ); ?>
|
162 |
+
<?php echo sprintf( __( '%s of %s', 'backupwordpress' ), esc_html( $excluded_size ), esc_html( size_format( $size ) ) ); ?>
|
163 |
+
<a class="dashicons dashicons-update" href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'hmbkp_recalculate_directory_filesize', urlencode( Path::get_root() ) ), 'hmbkp-recalculate_directory_filesize' ) ); ?>"><span><?php _e( 'Refresh', 'backupwordpress' ); ?></span></a>
|
|
|
|
|
|
|
164 |
</code>
|
165 |
|
|
|
|
|
|
|
166 |
<?php } ?>
|
167 |
|
168 |
<td>
|
169 |
+
<code><?php echo esc_html( substr( sprintf( '%o', fileperms( Path::get_root() ) ), - 4 ) ); ?></code>
|
170 |
</td>
|
171 |
|
172 |
<td>
|
173 |
|
174 |
+
<code>
|
175 |
+
|
176 |
+
<?php if ( is_link( Path::get_root() ) ) {
|
177 |
+
_e( 'Symlink', 'backupwordpress' );
|
178 |
+
} elseif ( is_dir( Path::get_root() ) ) {
|
179 |
+
_e( 'Folder', 'backupwordpress' );
|
180 |
+
} ?>
|
181 |
+
|
182 |
+
</code>
|
183 |
|
184 |
</td>
|
185 |
|
257 |
|
258 |
if ( false !== $size ) {
|
259 |
|
260 |
+
$size = size_format( $size ) ?: '0 B';
|
261 |
+
$excluded_size = size_format( $excluded_site_size->filesize( $file ) ) ?: '0'; ?>
|
|
|
|
|
|
|
262 |
|
263 |
<code>
|
264 |
|
265 |
+
<?php if ( $file->isDir() ) {
|
266 |
+
$excluded_size = is_same_size_format( $size, $excluded_size ) ? (int) size_format( $excluded_size ) : size_format( $excluded_size );
|
267 |
+
echo sprintf( __( '%s of %s', 'backupwordpress' ), esc_html( $excluded_size ), esc_html( size_format( $size ) ) );
|
268 |
+
} elseif ( ! $is_unreadable ) {
|
269 |
+
echo esc_html( $size );
|
270 |
+
} else {
|
271 |
+
echo '-';
|
272 |
+
} ?>
|
273 |
|
274 |
</code>
|
275 |
|
283 |
</td>
|
284 |
|
285 |
<td>
|
286 |
+
<code>
|
287 |
+
<?php if ( ! $is_unreadable ) {
|
288 |
+
echo esc_html( substr( sprintf( '%o', $file->getPerms() ), - 4 ) );
|
289 |
+
} else {
|
290 |
+
echo '-';
|
291 |
+
} ?>
|
292 |
+
</code>
|
293 |
</td>
|
294 |
|
295 |
<td>
|
296 |
+
<code>
|
297 |
<?php if ( $file->isLink() ) { ?>
|
298 |
|
299 |
<span title="<?php echo esc_attr( wp_normalize_path( $file->getRealPath() ) ); ?>"><?php _e( 'Symlink', 'backupwordpress' ); ?></span>
|
303 |
} else {
|
304 |
_e( 'File', 'backupwordpress' );
|
305 |
} ?>
|
306 |
+
</code>
|
307 |
</td>
|
308 |
|
309 |
<td class="column-format">
|
backupwordpress.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: BackUpWordPress
|
4 |
Plugin URI: http://bwp.hmn.md/
|
5 |
Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools → Backups</strong>. On multisite, you'll find me under the Network Settings menu.
|
6 |
-
Version: 3.5
|
7 |
Author: Human Made Limited
|
8 |
Author URI: http://hmn.md/
|
9 |
License: GPL-2+
|
3 |
Plugin Name: BackUpWordPress
|
4 |
Plugin URI: http://bwp.hmn.md/
|
5 |
Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools → Backups</strong>. On multisite, you'll find me under the Network Settings menu.
|
6 |
+
Version: 3.5
|
7 |
Author: Human Made Limited
|
8 |
Author URI: http://hmn.md/
|
9 |
License: GPL-2+
|
classes/class-plugin.php
CHANGED
@@ -6,7 +6,7 @@ namespace HM\BackUpWordPress;
|
|
6 |
* Class Plugin
|
7 |
*/
|
8 |
final class Plugin {
|
9 |
-
const PLUGIN_VERSION = '3.5
|
10 |
|
11 |
/**
|
12 |
* @var Plugin The singleton instance.
|
6 |
* Class Plugin
|
7 |
*/
|
8 |
final class Plugin {
|
9 |
+
const PLUGIN_VERSION = '3.5';
|
10 |
|
11 |
/**
|
12 |
* @var Plugin The singleton instance.
|
classes/class-scheduled-backup.php
CHANGED
@@ -287,7 +287,7 @@ class Scheduled_Backup {
|
|
287 |
/**
|
288 |
* Set the schedule start time.
|
289 |
*
|
290 |
-
* @param
|
291 |
*/
|
292 |
public function set_schedule_start_time( $time ) {
|
293 |
|
287 |
/**
|
288 |
* Set the schedule start time.
|
289 |
*
|
290 |
+
* @param Int $time A valid timestamp
|
291 |
*/
|
292 |
public function set_schedule_start_time( $time ) {
|
293 |
|
composer.json
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
],
|
8 |
"type" : "wordpress-plugin",
|
9 |
"homepage" : "https://github.com/humanmade/backupwordpress",
|
10 |
-
"license" : "GPL-
|
11 |
"authors" : [
|
12 |
{
|
13 |
"name" : "Human Made Limited",
|
7 |
],
|
8 |
"type" : "wordpress-plugin",
|
9 |
"homepage" : "https://github.com/humanmade/backupwordpress",
|
10 |
+
"license" : "GPL-2.0",
|
11 |
"authors" : [
|
12 |
{
|
13 |
"name" : "Human Made Limited",
|
functions/core.php
CHANGED
@@ -613,7 +613,7 @@ function ignore_stderr() {
|
|
613 |
* @todo doesn't really belong in this class, should just be a function
|
614 |
* @return array returns an array of files ordered by filesize
|
615 |
*/
|
616 |
-
function list_directory_by_total_filesize( $directory ) {
|
617 |
|
618 |
$files = $files_with_no_size = $empty_files = $files_with_size = $unreadable_files = array();
|
619 |
|
@@ -627,7 +627,7 @@ function list_directory_by_total_filesize( $directory ) {
|
|
627 |
$finder->ignoreUnreadableDirs();
|
628 |
$finder->depth( '== 0' );
|
629 |
|
630 |
-
$site_size = new Site_Size;
|
631 |
|
632 |
$files = $finder->in( $directory );
|
633 |
|
613 |
* @todo doesn't really belong in this class, should just be a function
|
614 |
* @return array returns an array of files ordered by filesize
|
615 |
*/
|
616 |
+
function list_directory_by_total_filesize( $directory, Excludes $excludes ) {
|
617 |
|
618 |
$files = $files_with_no_size = $empty_files = $files_with_size = $unreadable_files = array();
|
619 |
|
627 |
$finder->ignoreUnreadableDirs();
|
628 |
$finder->depth( '== 0' );
|
629 |
|
630 |
+
$site_size = new Site_Size( 'file', $excludes );
|
631 |
|
632 |
$files = $finder->in( $directory );
|
633 |
|
functions/interface.php
CHANGED
@@ -208,8 +208,8 @@ function plugin_row( $plugins ) {
|
|
208 |
|
209 |
$menu = is_multisite() ? 'Settings' : 'Tools';
|
210 |
|
211 |
-
if ( isset( $plugins[HMBKP_PLUGIN_SLUG . '/backupwordpress.php'] ) ) {
|
212 |
-
$plugins[HMBKP_PLUGIN_SLUG . '/backupwordpress.php']['Description'] = str_replace( 'Once activated you\'ll find me under <strong>' . $menu . ' → Backups</strong>', 'Find me under <strong><a href="' . esc_url( get_settings_url() ) . '">' . $menu . ' → Backups</a></strong>', $plugins[HMBKP_PLUGIN_SLUG . '/backupwordpress.php']['Description'] );
|
213 |
}
|
214 |
|
215 |
return $plugins;
|
@@ -312,7 +312,7 @@ function translated_schedule_title( $slug, $title ) {
|
|
312 |
'database-monthly' => esc_html__( 'Database Monthly', 'backupwordpress' ),
|
313 |
'complete-manually' => esc_html__( 'Complete Manually', 'backupwordpress' ),
|
314 |
'file-manually' => esc_html__( 'File Manually', 'backupwordpress' ),
|
315 |
-
'database-manually' => esc_html__( 'Database Manually', 'backupwordpress' )
|
316 |
);
|
317 |
|
318 |
if ( isset( $titles[ $slug ] ) ) {
|
@@ -379,7 +379,7 @@ function get_settings_errors() {
|
|
379 |
*
|
380 |
* @return bool
|
381 |
*/
|
382 |
-
function clear_settings_errors(){
|
383 |
return delete_transient( 'hmbkp_settings_errors' );
|
384 |
}
|
385 |
|
@@ -412,3 +412,23 @@ function path_in_php_open_basedir( $path, $ini_get = 'ini_get' ) {
|
|
412 |
return false;
|
413 |
|
414 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
|
209 |
$menu = is_multisite() ? 'Settings' : 'Tools';
|
210 |
|
211 |
+
if ( isset( $plugins[ HMBKP_PLUGIN_SLUG . '/backupwordpress.php' ] ) ) {
|
212 |
+
$plugins[ HMBKP_PLUGIN_SLUG . '/backupwordpress.php' ]['Description'] = str_replace( 'Once activated you\'ll find me under <strong>' . $menu . ' → Backups</strong>', 'Find me under <strong><a href="' . esc_url( get_settings_url() ) . '">' . $menu . ' → Backups</a></strong>', $plugins[ HMBKP_PLUGIN_SLUG . '/backupwordpress.php' ]['Description'] );
|
213 |
}
|
214 |
|
215 |
return $plugins;
|
312 |
'database-monthly' => esc_html__( 'Database Monthly', 'backupwordpress' ),
|
313 |
'complete-manually' => esc_html__( 'Complete Manually', 'backupwordpress' ),
|
314 |
'file-manually' => esc_html__( 'File Manually', 'backupwordpress' ),
|
315 |
+
'database-manually' => esc_html__( 'Database Manually', 'backupwordpress' ),
|
316 |
);
|
317 |
|
318 |
if ( isset( $titles[ $slug ] ) ) {
|
379 |
*
|
380 |
* @return bool
|
381 |
*/
|
382 |
+
function clear_settings_errors() {
|
383 |
return delete_transient( 'hmbkp_settings_errors' );
|
384 |
}
|
385 |
|
412 |
return false;
|
413 |
|
414 |
}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Check if two filesizes are of the same size format
|
418 |
+
*
|
419 |
+
* E.g. 22 MB and 44 MB are both MB so return true. Whereas
|
420 |
+
* 22 KB and 12 TB are not so return false.
|
421 |
+
*
|
422 |
+
* @param int $size
|
423 |
+
* @param int $other_size
|
424 |
+
*
|
425 |
+
* @return boolean Whether the two filesizes are of the same magnitude
|
426 |
+
*/
|
427 |
+
function is_same_size_format( $size, $other_size ) {
|
428 |
+
|
429 |
+
if ( ! is_int( $size ) || ! is_int( $other_size ) ) {
|
430 |
+
return false;
|
431 |
+
}
|
432 |
+
|
433 |
+
return preg_replace( '/[0-9]+/', '', size_format( $size ) ) === preg_replace( '/[0-9]+/', '', size_format( $other_size ) );
|
434 |
+
}
|
languages/backupwordpress.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GPL-2+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: BackUpWordPress 3.
|
6 |
"Report-Msgid-Bugs-To: backupwordpress@hmn.md\n"
|
7 |
-
"POT-Creation-Date: 2016-03-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -80,11 +80,11 @@ msgid ""
|
|
80 |
"for manual backups. See the %3$s for more details."
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: admin/backups-table.php:14
|
84 |
msgid "Size"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: admin/backups-table.php:15 admin/schedule-form-excludes.php:
|
88 |
msgid "Type"
|
89 |
msgstr ""
|
90 |
|
@@ -441,59 +441,63 @@ msgid ""
|
|
441 |
"backup."
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: admin/schedule-form-excludes.php:
|
445 |
msgid "Name"
|
446 |
msgstr ""
|
447 |
|
448 |
#: admin/schedule-form-excludes.php:109
|
|
|
|
|
|
|
|
|
449 |
msgid "Permissions"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: admin/schedule-form-excludes.php:
|
453 |
msgid "Status"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: admin/schedule-form-excludes.php:
|
|
|
|
|
|
|
|
|
457 |
msgid "Refresh"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: admin/schedule-form-excludes.php:
|
461 |
msgid "Symlink"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: admin/schedule-form-excludes.php:
|
465 |
msgid "Folder"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: admin/schedule-form-excludes.php:
|
469 |
-
msgid "Recalculate the size of this directory"
|
470 |
-
msgstr ""
|
471 |
-
|
472 |
-
#: admin/schedule-form-excludes.php:308
|
473 |
msgid "File"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: admin/schedule-form-excludes.php:
|
477 |
msgid "Unreadable files won't be backed up."
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: admin/schedule-form-excludes.php:
|
481 |
msgid "Unreadable"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: admin/schedule-form-excludes.php:
|
485 |
msgid "Excluded"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: admin/schedule-form-excludes.php:
|
489 |
msgid "Exclude →"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: admin/schedule-form-excludes.php:
|
493 |
msgid "This folder is empty"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: admin/schedule-form-excludes.php:
|
497 |
#: admin/schedule-settings.php:90
|
498 |
msgid "Done"
|
499 |
msgstr ""
|
2 |
# This file is distributed under the GPL-2+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: BackUpWordPress 3.5-beta\n"
|
6 |
"Report-Msgid-Bugs-To: backupwordpress@hmn.md\n"
|
7 |
+
"POT-Creation-Date: 2016-03-10 17:03:08+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
80 |
"for manual backups. See the %3$s for more details."
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: admin/backups-table.php:14
|
84 |
msgid "Size"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: admin/backups-table.php:15 admin/schedule-form-excludes.php:111
|
88 |
msgid "Type"
|
89 |
msgstr ""
|
90 |
|
441 |
"backup."
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: admin/schedule-form-excludes.php:108
|
445 |
msgid "Name"
|
446 |
msgstr ""
|
447 |
|
448 |
#: admin/schedule-form-excludes.php:109
|
449 |
+
msgid "Included Size"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: admin/schedule-form-excludes.php:110
|
453 |
msgid "Permissions"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: admin/schedule-form-excludes.php:112
|
457 |
msgid "Status"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: admin/schedule-form-excludes.php:162 admin/schedule-form-excludes.php:267
|
461 |
+
msgid "%s of %s"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: admin/schedule-form-excludes.php:163
|
465 |
msgid "Refresh"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: admin/schedule-form-excludes.php:177 admin/schedule-form-excludes.php:299
|
469 |
msgid "Symlink"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: admin/schedule-form-excludes.php:179 admin/schedule-form-excludes.php:302
|
473 |
msgid "Folder"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: admin/schedule-form-excludes.php:304
|
|
|
|
|
|
|
|
|
477 |
msgid "File"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: admin/schedule-form-excludes.php:313
|
481 |
msgid "Unreadable files won't be backed up."
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: admin/schedule-form-excludes.php:313
|
485 |
msgid "Unreadable"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: admin/schedule-form-excludes.php:317
|
489 |
msgid "Excluded"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: admin/schedule-form-excludes.php:333
|
493 |
msgid "Exclude →"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: admin/schedule-form-excludes.php:346
|
497 |
msgid "This folder is empty"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: admin/schedule-form-excludes.php:357 admin/schedule-form.php:204
|
501 |
#: admin/schedule-settings.php:90
|
502 |
msgid "Done"
|
503 |
msgstr ""
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: humanmade, willmot, pauldewouters, joehoyle, mattheu, tcrsavage, c
|
|
3 |
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.4.2
|
6 |
-
Stable tag: 3.
|
7 |
|
8 |
Simple automated backups of your WordPress-powered website.
|
9 |
|
@@ -158,6 +158,20 @@ users should see major improvements to reliability.
|
|
158 |
|
159 |
== Changelog ==
|
160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
### 3.4.5 / 2016-02-23
|
162 |
|
163 |
* Fix fatal error on upgrade
|
3 |
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.4.2
|
6 |
+
Stable tag: 3.5
|
7 |
|
8 |
Simple automated backups of your WordPress-powered website.
|
9 |
|
158 |
|
159 |
== Changelog ==
|
160 |
|
161 |
+
### 3.5 / 2016-03-10
|
162 |
+
|
163 |
+
* Reduce duplication and improve code readability when echoing filesizes
|
164 |
+
* Improve how filesizes are handled in the Your Site list
|
165 |
+
* Switch to storing site size data in a file, large sites could cause database errors when saving the option
|
166 |
+
* Re-remove the PHP User and Group Requirements
|
167 |
+
* Check that the backup file exists before attempting to check it's contents
|
168 |
+
* Only call getPerms on readable files to ensure we avoid a fatal error
|
169 |
+
* Ensure error are correctly check in verify_backup
|
170 |
+
* Use Symfony Process instead of shell_exec for all our system calls
|
171 |
+
* More unit tests
|
172 |
+
* Update dependencies
|
173 |
+
* Detect disabled functions defined in php.ini, now accounts for different separators.
|
174 |
+
|
175 |
### 3.4.5 / 2016-02-23
|
176 |
|
177 |
* Fix fatal error on upgrade
|