BackWPup – WordPress Backup Plugin - Version 3.3.1

Version Description

= After an upgrade from version 2 =

Please check all settings after the update:

  • Dropbox authentication must be done again
  • SugarSync authentication must be done again
  • S3 Settings
  • Google Storage is now in S3
  • Check all your passwords
Download this release

Release Info

Developer danielhuesken
Plugin Icon 128x128 BackWPup – WordPress Backup Plugin
Version 3.3.1
Comparing to
See all releases

Code changes from version 3.3 to 3.3.1

assets/css/backwpup.css CHANGED
@@ -200,24 +200,26 @@
200
  #wpfooter #footer-right {
201
  overflow: hidden;
202
  }
203
- #wpfooter .mp_logo {
204
- background: url('../images/mp_logo_small.png') no-repeat;
205
- display: block;
206
- float: left;
207
  margin-right: 15px;
208
- line-height: 26px;
209
- width: 145px;
 
210
  text-indent: -9999em;
211
  }
 
 
 
212
  #wpfooter #footer-left .backwpup-get-pro {
213
- display: block;
214
- float: left;
215
- line-height: 36px;
216
- margin-right: 15px;
217
  }
218
  #wpfooter #footer-upgrade .backwpup-update-footer {
219
  display: block;
220
- line-height: 36px;
221
  }
222
  #wpfooter #footer-left #footer-thankyou {
223
  clear: both;
200
  #wpfooter #footer-right {
201
  overflow: hidden;
202
  }
203
+ #wpfooter .inpsyde_logo {
204
+ background: url('../images/inpsyde.png') no-repeat;
205
+ display: inline-block;
206
+ margin-top: 5px;
207
  margin-right: 15px;
208
+ line-height: 25px;
209
+ height: 25px;
210
+ width: 80px;
211
  text-indent: -9999em;
212
  }
213
+ #wpfooter .inpsyde_logo:active {
214
+ text-decoration: none;
215
+ }
216
  #wpfooter #footer-left .backwpup-get-pro {
217
+ display: inline-block;
218
+ line-height: 25px;
 
 
219
  }
220
  #wpfooter #footer-upgrade .backwpup-update-footer {
221
  display: block;
222
+ line-height: 25px;
223
  }
224
  #wpfooter #footer-left #footer-thankyou {
225
  clear: both;
assets/css/backwpup.min.css CHANGED
@@ -1 +1 @@
1
- @font-face{font-family:backwpup;src:url(../fonts/backwpup.eot);src:url(../fonts/backwpup.eot?#iefix) format('embedded-opentype'),url(../fonts/backwpup.ttf) format('truetype'),url(../fonts/backwpup.woff) format('woff'),url(../fonts/backwpup.svg#backwpup) format('svg');font-weight:400;font-style:normal}#wp-admin-bar-backwpup .ab-icon{font:400 20px/1 backwpup!important}#wp-admin-bar-backwpup .ab-icon:before{content:"\e600";top:2px}@media screen and (max-width:782px){#wp-admin-bar-backwpup .ab-icon{font:400 32px/1 backwpup!important;display:block;text-indent:0;speak:none;top:7px;width:50px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wp-admin-bar-backwpup .ab-icon:before{top:0}}#adminmenu #toplevel_page_backwpup div.wp-menu-image:before{font:400 20px/1 backwpup!important;content:"\e600"}#backwpup-page-icon,#backwpup-page-icon:before{display:none}#backwpup-page .backwpup-floated-postbox{margin:25px 0 0;max-width:100%;overflow:hidden;padding:15px;position:relative}#backwpup-page .backwpup-floated-postbox h3 a{font-size:14px;text-decoration:none;font-weight:600}#backwpup-page .backwpup-cleared-postbox{clear:both;margin:25px 0 0;padding:10px}#backwpup-page .postbox ul{padding-left:10px}#backwpup-page .postbox table{caption-side:top;margin-bottom:25px}#backwpup-page .postbox .hndle{cursor:auto}#backwpup-page .postbox table caption{color:#222;font-weight:600;font-size:14px;padding:8px 12px;margin:0;line-height:1.4;text-align:left}#backwpup-page .wizardbox{color:#fff;background:url(../images/hgbox.png) right bottom no-repeat #1d94cf;min-height:20em}#backwpup-page .wizardbox:hover{background-color:#0f79ae}#backwpup-page .button-bwp,#backwpup-page .button-primary-bwp{border-radius:0;-webkit-box-shadow:none;box-shadow:none}#backwpup-page .button-primary-bwp{border:none;background:#38b0eb;color:#fff;min-width:8em}#backwpup-page .button-primary-bwp:hover{background:#064565}#backwpup-page .wizardbox .wizardbox_name{color:#fff;margin-top:0}#backwpup-page .wizardbox .wizardbox_start{position:absolute;bottom:10px;left:10px}#backwpup-page .wizardbox select{max-width:100%;width:100%}#backwpup-page .backwpup-table-wrap{overflow-x:auto}#backwpup-page .backwpup-banner-img{display:block;height:auto;margin:26px auto;max-width:100%}#backwpup-page .backwpup-text-center{text-align:center}#backwpup-page ul.backwpup-text-center{padding-left:0}#backwpup-page .postbox .backwpup-bullet-list{padding-left:16px;list-style:disc}#backwpup-page .postbox ol.backwpup-bullet-list{list-style:decimal}#backwpup-page .backwpup-message{margin:5px 0 15px;border:none;padding:1px 12px;background-color:#fff;border-left:4px solid #ccc;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#backwpup-page .backwpup-message p{margin:.5em 0;padding:2px}#backwpup-page .backwpup-info{border-left:4px solid #38b0eb}#backwpup-page .backwpup-warning{border-left:4px solid #ffba00}@media screen and (min-width:720px){#backwpup-page .backwpup-floated-postbox{float:left;margin:25px 25px 25px 0;width:290px}#backwpup-page #backwpup-one-click-backup,#backwpup-page #backwpup-stats,#backwpup-page #backwpup-thank-you,#backwpup-page #wizard-jobimport{margin-right:0}#backwpup-page #backwpup-one-click-backup+.backwpup-floated-postbox,#backwpup-page #backwpup-stats,#backwpup-page #backwpup-thank-you{clear:left}}@media screen and (min-width:1024px){#backwpup-page .backwpup-floated-postbox{width:362px}#backwpup-page .wizardbox{width:225px;min-height:225px}#backwpup-page .backwpup-max-width{max-width:800px}body[class*="_backwpupabout"] #backwpup-page .backwpup-welcome{max-width:none}}#wpfooter #footer-left,#wpfooter #footer-right{overflow:hidden}#wpfooter .mp_logo{background:url(../images/mp_logo_small.png) no-repeat;display:block;float:left;margin-right:15px;line-height:26px;width:145px;text-indent:-9999em}#wpfooter #footer-left .backwpup-get-pro{display:block;float:left;line-height:36px;margin-right:15px}#wpfooter #footer-upgrade .backwpup-update-footer{display:block;line-height:36px}#wpfooter #footer-left #footer-thankyou{clear:both;display:block;padding-top:.5em}#documentation_content p{font-size:14px;line-height:20px;color:#333}#documentation_content h3{padding:7px 0;font-size:22px}#documentation_content h4{padding:7px 0;font-size:18px}#documentation_content img.size-full{border:10px solid #f6f6f6}
1
+ @font-face{font-family:backwpup;src:url(../fonts/backwpup.eot);src:url(../fonts/backwpup.eot?#iefix) format('embedded-opentype'),url(../fonts/backwpup.ttf) format('truetype'),url(../fonts/backwpup.woff) format('woff'),url(../fonts/backwpup.svg#backwpup) format('svg');font-weight:400;font-style:normal}#wp-admin-bar-backwpup .ab-icon{font:400 20px/1 backwpup!important}#wp-admin-bar-backwpup .ab-icon:before{content:"\e600";top:2px}@media screen and (max-width:782px){#wp-admin-bar-backwpup .ab-icon{font:400 32px/1 backwpup!important;display:block;text-indent:0;speak:none;top:7px;width:50px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wp-admin-bar-backwpup .ab-icon:before{top:0}}#adminmenu #toplevel_page_backwpup div.wp-menu-image:before{font:400 20px/1 backwpup!important;content:"\e600"}#backwpup-page-icon,#backwpup-page-icon:before{display:none}#backwpup-page .backwpup-floated-postbox{margin:25px 0 0;max-width:100%;overflow:hidden;padding:15px;position:relative}#backwpup-page .backwpup-floated-postbox h3 a{font-size:14px;text-decoration:none;font-weight:600}#backwpup-page .backwpup-cleared-postbox{clear:both;margin:25px 0 0;padding:10px}#backwpup-page .postbox ul{padding-left:10px}#backwpup-page .postbox table{caption-side:top;margin-bottom:25px}#backwpup-page .postbox .hndle{cursor:auto}#backwpup-page .postbox table caption{color:#222;font-weight:600;font-size:14px;padding:8px 12px;margin:0;line-height:1.4;text-align:left}#backwpup-page .wizardbox{color:#fff;background:url(../images/hgbox.png) right bottom no-repeat #1d94cf;min-height:20em}#backwpup-page .wizardbox:hover{background-color:#0f79ae}#backwpup-page .button-bwp,#backwpup-page .button-primary-bwp{border-radius:0;-webkit-box-shadow:none;box-shadow:none}#backwpup-page .button-primary-bwp{border:none;background:#38b0eb;color:#fff;min-width:8em}#backwpup-page .button-primary-bwp:hover{background:#064565}#backwpup-page .wizardbox .wizardbox_name{color:#fff;margin-top:0}#backwpup-page .wizardbox .wizardbox_start{position:absolute;bottom:10px;left:10px}#backwpup-page .wizardbox select{max-width:100%;width:100%}#backwpup-page .backwpup-table-wrap{overflow-x:auto}#backwpup-page .backwpup-banner-img{display:block;height:auto;margin:26px auto;max-width:100%}#wpfooter #footer-left .backwpup-get-pro,#wpfooter .inpsyde_logo{display:inline-block;line-height:25px}#backwpup-page .backwpup-text-center{text-align:center}#backwpup-page ul.backwpup-text-center{padding-left:0}#backwpup-page .postbox .backwpup-bullet-list{padding-left:16px;list-style:disc}#backwpup-page .postbox ol.backwpup-bullet-list{list-style:decimal}#backwpup-page .backwpup-message{margin:5px 0 15px;border:none;padding:1px 12px;background-color:#fff;border-left:4px solid #ccc;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#backwpup-page .backwpup-message p{margin:.5em 0;padding:2px}#backwpup-page .backwpup-info{border-left:4px solid #38b0eb}#backwpup-page .backwpup-warning{border-left:4px solid #ffba00}@media screen and (min-width:720px){#backwpup-page .backwpup-floated-postbox{float:left;margin:25px 25px 25px 0;width:290px}#backwpup-page #backwpup-one-click-backup,#backwpup-page #backwpup-stats,#backwpup-page #backwpup-thank-you,#backwpup-page #wizard-jobimport{margin-right:0}#backwpup-page #backwpup-one-click-backup+.backwpup-floated-postbox,#backwpup-page #backwpup-stats,#backwpup-page #backwpup-thank-you{clear:left}}@media screen and (min-width:1024px){#backwpup-page .backwpup-floated-postbox{width:362px}#backwpup-page .wizardbox{width:225px;min-height:225px}#backwpup-page .backwpup-max-width{max-width:800px}body[class*="_backwpupabout"] #backwpup-page .backwpup-welcome{max-width:none}}#wpfooter #footer-left,#wpfooter #footer-right{overflow:hidden}#wpfooter .inpsyde_logo{background:url(../images/inpsyde.png) no-repeat;margin-top:5px;margin-right:15px;height:25px;width:80px;text-indent:-9999em}#wpfooter .inpsyde_logo:active{text-decoration:none}#wpfooter #footer-upgrade .backwpup-update-footer{display:block;line-height:25px}#wpfooter #footer-left #footer-thankyou{clear:both;display:block;padding-top:.5em}#documentation_content p{font-size:14px;line-height:20px;color:#333}#documentation_content h3{padding:7px 0;font-size:22px}#documentation_content h4{padding:7px 0;font-size:18px}#documentation_content img.size-full{border:10px solid #f6f6f6}
assets/images/inpsyde.png CHANGED
Binary file
assets/images/mp_logo_small.png DELETED
Binary file
assets/js/general.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(a){backwpup_htmlspecialchars=function(a){return jQuery("<span>").text(a).html()},a.fn.backwpupDelayKeyup=function(b,c){var d=0;return a(this).keyup(function(){clearTimeout(d),d=setTimeout(b,c)}),a(this)},backwpup_tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>720?720:c,f=d>525?525:d,g=0;return a("body.admin-bar").length&&(g=28),b.size()&&(b.width(e-50).height(f-45-g),a("#TB_iframeContent").width(e-50).height(f-75-g),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+g+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+(e-80)+"&height="+(f-85-g)))})},a(window).resize(function(){backwpup_tb_position()}),backwpup_tb_position()});
1
+ jQuery(document).ready(function(a){backwpup_htmlspecialchars=function(a){return jQuery("<span>").text(a).html()},a.fn.backwpupDelayKeyup=function(b){var c=0;return a(this).keyup(function(){clearTimeout(c),c=setTimeout(b,200)}),a(this)},backwpup_tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>720?720:c,f=d>525?525:d,g=0;return a("body.admin-bar").length&&(g=28),b.size()&&(b.width(e-50).height(f-45-g),a("#TB_iframeContent").width(e-50).height(f-75-g),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+g+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+(e-80)+"&height="+(f-85-g)))})},a(window).resize(function(){backwpup_tb_position()}),backwpup_tb_position()});
backwpup.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
  /**
3
  * Plugin Name: BackWPup
4
- * Plugin URI: https://marketpress.com/product/backwpup-pro/
5
  * Description: WordPress Backup Plugin
6
  * Author: Inpsyde GmbH
7
  * Author URI: http://inpsyde.com
8
- * Version: 3.3
9
  * Text Domain: backwpup
10
  * Domain Path: /languages/
11
  * Network: true
@@ -138,43 +138,27 @@ if ( ! class_exists( 'BackWPup' ) ) {
138
  if ( empty( self::$plugin_data ) ) {
139
  self::$plugin_data = get_file_data( __FILE__, array(
140
  'name' => 'Plugin Name',
141
- 'pluginuri' => 'Plugin URI',
142
- 'version' => 'Version',
143
- 'description' => 'Description',
144
- 'author' => 'Author',
145
- 'authoruri' => 'Author URI',
146
- 'textdomain' => 'Text Domain',
147
- 'domainpath' => 'Domain Path',
148
- 'license' => 'License',
149
- 'licenseuri' => 'License URI'
150
  ), 'plugin' );
151
- //Translate some vars
152
  self::$plugin_data[ 'name' ] = trim( self::$plugin_data[ 'name' ] );
153
- self::$plugin_data[ 'pluginuri' ] = trim( self::$plugin_data[ 'pluginuri' ] );
154
- self::$plugin_data[ 'description' ] = trim( self::$plugin_data[ 'description' ] );
155
- self::$plugin_data[ 'author' ] = trim( self::$plugin_data[ 'author' ] );
156
- self::$plugin_data[ 'authoruri' ] = trim( self::$plugin_data[ 'authoruri' ] );
157
  //set some extra vars
158
  self::$plugin_data[ 'basename' ] = plugin_basename( dirname( __FILE__ ) );
159
  self::$plugin_data[ 'mainfile' ] = __FILE__ ;
160
  self::$plugin_data[ 'plugindir' ] = untrailingslashit( dirname( __FILE__ ) ) ;
161
  self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
162
  if ( empty( self::$plugin_data[ 'hash' ] ) || strlen( self::$plugin_data[ 'hash' ] ) < 6 || strlen( self::$plugin_data[ 'hash' ] ) > 12 ) {
163
- update_site_option( 'backwpup_cfg_hash', substr( md5( md5( BackWPup::get_plugin_data( "mainfile" ) ) ), 14, 6 ) );
164
- self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
165
  }
166
  if ( defined( 'WP_TEMP_DIR' ) && is_dir( WP_TEMP_DIR ) ) {
167
- self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', WP_TEMP_DIR ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] );
168
  } else {
169
- $upload_dir = wp_upload_dir();
170
- self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] . '-temp' );
171
  }
172
  self::$plugin_data[ 'running_file' ] = self::$plugin_data[ 'temp' ] . 'backwpup-working.php';
173
  self::$plugin_data[ 'url' ] = plugins_url( '', __FILE__ );
174
- self::$plugin_data[ 'cacert' ] = FALSE;
175
- if ( file_exists( self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem' ) )
176
- self::$plugin_data[ 'cacert' ] = self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem';
177
- self::$plugin_data[ 'cacert' ] = apply_filters( 'backwpup_cacert_bundle', self::$plugin_data[ 'cacert' ] );
178
  //get unmodified WP Versions
179
  include ABSPATH . WPINC . '/version.php';
180
  /** @var $wp_version string */
1
  <?php
2
  /**
3
  * Plugin Name: BackWPup
4
+ * Plugin URI: http://backwpup.com
5
  * Description: WordPress Backup Plugin
6
  * Author: Inpsyde GmbH
7
  * Author URI: http://inpsyde.com
8
+ * Version: 3.3.1
9
  * Text Domain: backwpup
10
  * Domain Path: /languages/
11
  * Network: true
138
  if ( empty( self::$plugin_data ) ) {
139
  self::$plugin_data = get_file_data( __FILE__, array(
140
  'name' => 'Plugin Name',
141
+ 'version' => 'Version'
 
 
 
 
 
 
 
 
142
  ), 'plugin' );
 
143
  self::$plugin_data[ 'name' ] = trim( self::$plugin_data[ 'name' ] );
 
 
 
 
144
  //set some extra vars
145
  self::$plugin_data[ 'basename' ] = plugin_basename( dirname( __FILE__ ) );
146
  self::$plugin_data[ 'mainfile' ] = __FILE__ ;
147
  self::$plugin_data[ 'plugindir' ] = untrailingslashit( dirname( __FILE__ ) ) ;
148
  self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
149
  if ( empty( self::$plugin_data[ 'hash' ] ) || strlen( self::$plugin_data[ 'hash' ] ) < 6 || strlen( self::$plugin_data[ 'hash' ] ) > 12 ) {
150
+ self::$plugin_data[ 'hash' ] = substr( md5( md5( __FILE__ ) ), 14, 6 );
151
+ update_site_option( 'backwpup_cfg_hash', self::$plugin_data[ 'hash' ] );
152
  }
153
  if ( defined( 'WP_TEMP_DIR' ) && is_dir( WP_TEMP_DIR ) ) {
154
+ self::$plugin_data['temp'] = str_replace( '\\', '/', get_temp_dir() ) . 'backwpup-' . self::$plugin_data['hash'] . '/';
155
  } else {
156
+ $upload_dir = wp_upload_dir();
157
+ self::$plugin_data['temp'] = str_replace( '\\', '/', $upload_dir['basedir'] ) . '/backwpup-' . self::$plugin_data['hash'] . '-temp/';
158
  }
159
  self::$plugin_data[ 'running_file' ] = self::$plugin_data[ 'temp' ] . 'backwpup-working.php';
160
  self::$plugin_data[ 'url' ] = plugins_url( '', __FILE__ );
161
+ self::$plugin_data[ 'cacert' ] = apply_filters( 'backwpup_cacert_bundle', ABSPATH . WPINC . '/certificates/ca-bundle.crt' );
 
 
 
162
  //get unmodified WP Versions
163
  include ABSPATH . WPINC . '/version.php';
164
  /** @var $wp_version string */
inc/class-admin.php CHANGED
@@ -48,9 +48,6 @@ final class BackWPup_Admin {
48
  add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
49
  add_action( 'profile_update', array( $this, 'save_profile_update' ) );
50
 
51
- //Change Backup message on core updates
52
- add_filter( 'gettext', array( $this, 'gettext' ), 10, 3 );
53
-
54
  new BackWPup_EasyCron();
55
  }
56
 
@@ -127,12 +124,7 @@ final class BackWPup_Admin {
127
  public function plugin_links( $links, $file ) {
128
 
129
  if ( $file == plugin_basename( BackWPup::get_plugin_data( 'MainFile' ) ) ) {
130
- $links[ ] = '<a href="' . esc_attr__( 'https://marketpress.com/documentation/backwpup-pro/', 'backwpup' ) . '">' . __( 'Documentation', 'backwpup' ) . '</a>';
131
- if ( class_exists( 'BackWPup_Pro', FALSE ) )
132
- $links[ ] = '<a href="' . esc_attr__( 'https://marketpress.com/support/forum/plugins/backwpup-pro/', 'backwpup' ) . '">' . __( 'Pro Support', 'backwpup' ) . '</a>';
133
- else
134
- $links[ ] = '<a href="' . esc_attr__( 'http://wordpress.org/support/plugin/backwpup/', 'backwpup' ) . '">' . __( 'Support', 'backwpup' ) . '</a>';
135
-
136
  }
137
 
138
  return $links;
@@ -143,11 +135,11 @@ final class BackWPup_Admin {
143
  */
144
  public function admin_menu() {
145
 
146
- add_menu_page( BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'name' ), 'backwpup', 'backwpup', array( 'BackWPup_Page_Backwpup', 'page' ), 'div' );
147
- $this->page_hooks[ 'backwpup' ] = add_submenu_page( 'backwpup', __( 'BackWPup Dashboard', 'backwpup' ), __( 'Dashboard', 'backwpup' ), 'backwpup', 'backwpup', array( 'BackWPup_Page_Backwpup', 'page' ) );
148
  add_action( 'load-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Admin', 'init_general' ) );
149
- add_action( 'load-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Page_Backwpup', 'load' ) );
150
- add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Page_Backwpup', 'admin_print_scripts' ) );
151
 
152
  //Add pages form plugins
153
  $this->page_hooks = apply_filters( 'backwpup_admin_pages' ,$this->page_hooks );
@@ -390,9 +382,9 @@ final class BackWPup_Admin {
390
  $default_text = $admin_footer_text;
391
 
392
  if ( isset( $_REQUEST[ 'page' ] ) && strstr( $_REQUEST[ 'page' ], 'backwpup' ) ) {
393
- $admin_footer_text = '<a href="' . __( 'http://marketpress.com', 'backwpup' ) . '" class="mp_logo" title="' . __( 'MarketPress', 'backwpup' ) . '">' . __( 'MarketPress', 'backwpup' ) . '</a>';
394
  if ( ! class_exists( 'BackWPup_Pro', FALSE ) ) {
395
- $admin_footer_text .= sprintf( __( '<a class="backwpup-get-pro" href="%s">Get BackWPup Pro now.</a>', 'backwpup' ), translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' ) );
396
  }
397
 
398
  return $admin_footer_text . $default_text;
@@ -412,7 +404,7 @@ final class BackWPup_Admin {
412
  $default_text = $update_footer_text;
413
 
414
  if ( isset( $_REQUEST[ 'page' ] ) && strstr( $_REQUEST[ 'page' ], 'backwpup') ) {
415
- $update_footer_text = '<span class="backwpup-update-footer"><a href="' . translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' ) . '">' . BackWPup::get_plugin_data( 'Name' ) . '</a> '. sprintf( __( 'version %s' ,'backwpup'), BackWPup::get_plugin_data( 'Version' ) ) . '</span>';
416
 
417
  return $update_footer_text . $default_text;
418
  }
@@ -532,31 +524,4 @@ final class BackWPup_Admin {
532
  return;
533
  }
534
 
535
- /**
536
- * Replace some text strings to add backup notify
537
- *
538
- * @param $translations
539
- * @param $text
540
- * @param $domain
541
- *
542
- * @return string
543
- */
544
- public function gettext( $translations, $text, $domain ) {
545
-
546
- if ( strstr( $text, '<a href="http://codex.wordpress.org/WordPress_Backups">back up your database and files</a>' ) ) {
547
- return sprintf( __( '<strong>Important:</strong> before updating, please <a href="%1$s">back up your database and files</a> with <a href="http://marketpress.de/product/backwpup-pro/">%2$s</a>. For help with updates, visit the <a href="http://codex.wordpress.org/Updating_WordPress">Updating WordPress</a> Codex page.', 'backwpup' ), network_admin_url( 'admin.php?page=backwpupjobs' ), BackWPup::get_plugin_data( 'name' ) );
548
- }
549
-
550
- if ( strstr( $text, 'This plugin has <strong>not been tested</strong> with your current version of WordPress.' ) ) {
551
- return $translations . '</p></div><div class="updated"><p>' .sprintf( __( '<strong>Important:</strong> before installing this plugin, please <a href="%1$s">back up your database and files</a> with <a href="http://marketpress.de/product/backwpup-pro/">%2$s</a>.', 'backwpup' ), network_admin_url( 'admin.php?page=backwpupjobs' ), BackWPup::get_plugin_data( 'name' ) );
552
- }
553
-
554
- if ( strstr( $text, 'This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.' ) ) {
555
- return $translations . '</p></div><div class="updated"><p>' .sprintf( __( '<strong>Important:</strong> before installing this plugin, please <a href="%1$s">back up your database and files</a> with <a href="http://marketpress.de/product/backwpup-pro/">%2$s</a>.', 'backwpup' ), network_admin_url( 'admin.php?page=backwpupjobs' ), BackWPup::get_plugin_data( 'name' ) );
556
- }
557
-
558
- return $translations;
559
- }
560
-
561
-
562
  }
48
  add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
49
  add_action( 'profile_update', array( $this, 'save_profile_update' ) );
50
 
 
 
 
51
  new BackWPup_EasyCron();
52
  }
53
 
124
  public function plugin_links( $links, $file ) {
125
 
126
  if ( $file == plugin_basename( BackWPup::get_plugin_data( 'MainFile' ) ) ) {
127
+ $links[ ] = '<a href="' . esc_attr__( 'http://docs.backwpup.com', 'backwpup' ) . '">' . __( 'Documentation', 'backwpup' ) . '</a>';
 
 
 
 
 
128
  }
129
 
130
  return $links;
135
  */
136
  public function admin_menu() {
137
 
138
+ add_menu_page( BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'name' ), 'backwpup', 'backwpup', array( 'BackWPup_Page_BackWPup', 'page' ), 'div' );
139
+ $this->page_hooks[ 'backwpup' ] = add_submenu_page( 'backwpup', __( 'BackWPup Dashboard', 'backwpup' ), __( 'Dashboard', 'backwpup' ), 'backwpup', 'backwpup', array( 'BackWPup_Page_BackWPup', 'page' ) );
140
  add_action( 'load-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Admin', 'init_general' ) );
141
+ add_action( 'load-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Page_BackWPup', 'load' ) );
142
+ add_action( 'admin_print_scripts-' . $this->page_hooks[ 'backwpup' ], array( 'BackWPup_Page_BackWPup', 'admin_print_scripts' ) );
143
 
144
  //Add pages form plugins
145
  $this->page_hooks = apply_filters( 'backwpup_admin_pages' ,$this->page_hooks );
382
  $default_text = $admin_footer_text;
383
 
384
  if ( isset( $_REQUEST[ 'page' ] ) && strstr( $_REQUEST[ 'page' ], 'backwpup' ) ) {
385
+ $admin_footer_text = '<a href="http://inpsyde.com" class="inpsyde_logo" title="Inpsyde GmbH">Inpsyde GmbH</a>';
386
  if ( ! class_exists( 'BackWPup_Pro', FALSE ) ) {
387
+ $admin_footer_text .= sprintf( __( '<a class="backwpup-get-pro" href="%s">Get BackWPup Pro now.</a>', 'backwpup' ), __( 'http://backwpup.com', 'backwpup' ) );
388
  }
389
 
390
  return $admin_footer_text . $default_text;
404
  $default_text = $update_footer_text;
405
 
406
  if ( isset( $_REQUEST[ 'page' ] ) && strstr( $_REQUEST[ 'page' ], 'backwpup') ) {
407
+ $update_footer_text = '<span class="backwpup-update-footer"><a href="' . __( 'http://backwpup.com', 'backwpup' ) . '">' . BackWPup::get_plugin_data( 'Name' ) . '</a> '. sprintf( __( 'version %s' ,'backwpup'), BackWPup::get_plugin_data( 'Version' ) ) . '</span>';
408
 
409
  return $update_footer_text . $default_text;
410
  }
524
  return;
525
  }
526
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  }
inc/class-destination-dropbox.php CHANGED
@@ -205,7 +205,7 @@ class BackWPup_Destination_Dropbox extends BackWPup_Destinations {
205
  BackWPup_Admin::message( 'DROPBOX: ' . $e->getMessage(), true );
206
  }
207
 
208
- set_site_transient( 'backwpup_' . strtolower( $jobdest ), $files, 3600 * 24 * 7 );
209
  }
210
 
211
  /**
@@ -359,7 +359,7 @@ class BackWPup_Destination_Dropbox extends BackWPup_Destinations {
359
  }
360
  }
361
  }
362
- set_site_transient( 'backwpup_' . $job_object->job['jobid'] . '_dropbox', $files, 60 * 60 * 24 * 7 );
363
  } catch ( Exception $e ) {
364
  $job_object->log( E_USER_ERROR, sprintf( __( 'Dropbox API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
365
 
205
  BackWPup_Admin::message( 'DROPBOX: ' . $e->getMessage(), true );
206
  }
207
 
208
+ set_site_transient( 'backwpup_' . strtolower( $jobdest ), $files, YEAR_IN_SECONDS );
209
  }
210
 
211
  /**
359
  }
360
  }
361
  }
362
+ set_site_transient( 'backwpup_' . $job_object->job['jobid'] . '_dropbox', $files, YEAR_IN_SECONDS );
363
  } catch ( Exception $e ) {
364
  $job_object->log( E_USER_ERROR, sprintf( __( 'Dropbox API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
365
 
inc/class-destination-folder.php CHANGED
@@ -10,7 +10,7 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
10
  */
11
  public function option_defaults() {
12
 
13
- $upload_dir = wp_upload_dir();
14
  $backups_dir = trailingslashit( str_replace( '\\', '/',$upload_dir[ 'basedir' ] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-backups/';
15
  $content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
16
  $backups_dir = str_replace( $content_path, '', $backups_dir );
10
  */
11
  public function option_defaults() {
12
 
13
+ $upload_dir = wp_upload_dir( null, false, true );
14
  $backups_dir = trailingslashit( str_replace( '\\', '/',$upload_dir[ 'basedir' ] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-backups/';
15
  $content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
16
  $backups_dir = str_replace( $content_path, '', $backups_dir );
inc/class-destination-ftp.php CHANGED
@@ -179,7 +179,7 @@ class BackWPup_Destination_Ftp extends BackWPup_Destinations {
179
  }
180
  }
181
 
182
- set_site_transient( 'backwpup_'. strtolower( $jobdest ), $files, 60 * 60 * 24 * 7 );
183
  }
184
 
185
  /**
@@ -390,7 +390,7 @@ class BackWPup_Destination_Ftp extends BackWPup_Destinations {
390
  $job_object->log( sprintf( _n( 'One file deleted on FTP server', '%d files deleted on FTP server', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
391
  }
392
  }
393
- set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_ftp', $files, 60 * 60 * 24 * 7 );
394
  $job_object->substeps_done++;
395
 
396
  ftp_close( $ftp_conn_id );
179
  }
180
  }
181
 
182
+ set_site_transient( 'backwpup_'. strtolower( $jobdest ), $files, YEAR_IN_SECONDS );
183
  }
184
 
185
  /**
390
  $job_object->log( sprintf( _n( 'One file deleted on FTP server', '%d files deleted on FTP server', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
391
  }
392
  }
393
+ set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_ftp', $files, YEAR_IN_SECONDS );
394
  $job_object->substeps_done++;
395
 
396
  ftp_close( $ftp_conn_id );
inc/class-destination-msazure.php CHANGED
@@ -158,7 +158,7 @@ class BackWPup_Destination_MSAzure extends BackWPup_Destinations {
158
  }
159
  }
160
 
161
- set_site_transient( 'backwpup_' . strtolower( $jobdest ), $files, 60 * 60 * 24 * 7 );
162
  }
163
 
164
  /**
@@ -341,7 +341,7 @@ class BackWPup_Destination_MSAzure extends BackWPup_Destinations {
341
 
342
  }
343
  }
344
- set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_msazure', $files, 60 * 60 * 24 * 7 );
345
  }
346
  catch ( Exception $e ) {
347
  $job_object->log( E_USER_ERROR, sprintf( __( 'Microsoft Azure API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
158
  }
159
  }
160
 
161
+ set_site_transient( 'backwpup_' . strtolower( $jobdest ), $files, YEAR_IN_SECONDS );
162
  }
163
 
164
  /**
341
 
342
  }
343
  }
344
+ set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_msazure', $files, YEAR_IN_SECONDS );
345
  }
346
  catch ( Exception $e ) {
347
  $job_object->log( E_USER_ERROR, sprintf( __( 'Microsoft Azure API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
inc/class-destination-rsc.php CHANGED
@@ -197,7 +197,7 @@ class BackWPup_Destination_RSC extends BackWPup_Destinations {
197
  }
198
  }
199
 
200
- set_site_transient( 'backwpup_'. strtolower( $jobdest ), $files, 60 * 60 * 24 * 7 );
201
  }
202
 
203
  /**
@@ -352,7 +352,7 @@ class BackWPup_Destination_RSC extends BackWPup_Destinations {
352
  $job_object->log( sprintf( _n( 'One file deleted on Rackspace cloud container.', '%d files deleted on Rackspace cloud container.', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
353
  }
354
  }
355
- set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_rsc', $files, 60 * 60 * 24 * 7 );
356
  }
357
  catch ( Exception $e ) {
358
  $job_object->log( E_USER_ERROR, sprintf( __( 'Rackspace Cloud API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
197
  }
198
  }
199
 
200
+ set_site_transient( 'backwpup_'. strtolower( $jobdest ), $files, YEAR_IN_SECONDS );
201
  }
202
 
203
  /**
352
  $job_object->log( sprintf( _n( 'One file deleted on Rackspace cloud container.', '%d files deleted on Rackspace cloud container.', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
353
  }
354
  }
355
+ set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_rsc', $files, YEAR_IN_SECONDS );
356
  }
357
  catch ( Exception $e ) {
358
  $job_object->log( E_USER_ERROR, sprintf( __( 'Rackspace Cloud API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
inc/class-destination-s3.php CHANGED
@@ -313,7 +313,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
313
  }
314
  }
315
 
316
- set_site_transient( 'backwpup_'. strtolower( $jobdest ), $files, 60 * 60 * 24 * 7 );
317
  }
318
 
319
  /**
@@ -587,7 +587,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
587
  $job_object->log( sprintf( _n( 'One file deleted on S3 Bucket.', '%d files deleted on S3 Bucket', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
588
  }
589
  }
590
- set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_s3', $files, 60 * 60 * 24 * 7 );
591
  }
592
  catch ( Exception $e ) {
593
  $job_object->log( E_USER_ERROR, sprintf( __( 'S3 Service API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
313
  }
314
  }
315
 
316
+ set_site_transient( 'backwpup_'. strtolower( $jobdest ), $files, YEAR_IN_SECONDS );
317
  }
318
 
319
  /**
587
  $job_object->log( sprintf( _n( 'One file deleted on S3 Bucket.', '%d files deleted on S3 Bucket', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
588
  }
589
  }
590
+ set_site_transient( 'backwpup_' . $job_object->job[ 'jobid' ] . '_s3', $files, YEAR_IN_SECONDS );
591
  }
592
  catch ( Exception $e ) {
593
  $job_object->log( E_USER_ERROR, sprintf( __( 'S3 Service API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
inc/class-destination-sugarsync.php CHANGED
@@ -178,7 +178,7 @@ class BackWPup_Destination_SugarSync extends BackWPup_Destinations {
178
  }
179
  }
180
 
181
- set_site_transient( 'backwpup_' . strtolower( $jobdest ), $files, 60 * 60 * 24 * 7 );
182
  }
183
 
184
  /**
@@ -301,7 +301,7 @@ class BackWPup_Destination_SugarSync extends BackWPup_Destinations {
301
  $job_object->log( sprintf( _n( 'One file deleted on SugarSync folder', '%d files deleted on SugarSync folder', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
302
  }
303
  }
304
- set_site_transient( 'BackWPup_' . $job_object->job[ 'jobid' ] . '_SUGARSYNC', $files, 60 * 60 * 24 * 7 );
305
  }
306
  catch ( Exception $e ) {
307
  $job_object->log( E_USER_ERROR, sprintf( __( 'SugarSync API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
178
  }
179
  }
180
 
181
+ set_site_transient( 'backwpup_' . strtolower( $jobdest ), $files, YEAR_IN_SECONDS );
182
  }
183
 
184
  /**
301
  $job_object->log( sprintf( _n( 'One file deleted on SugarSync folder', '%d files deleted on SugarSync folder', $numdeltefiles, 'backwpup' ), $numdeltefiles ), E_USER_NOTICE );
302
  }
303
  }
304
+ set_site_transient( 'BackWPup_' . $job_object->job[ 'jobid' ] . '_SUGARSYNC', $files, YEAR_IN_SECONDS );
305
  }
306
  catch ( Exception $e ) {
307
  $job_object->log( E_USER_ERROR, sprintf( __( 'SugarSync API: %s', 'backwpup' ), $e->getMessage() ), $e->getFile(), $e->getLine() );
inc/class-easycron.php CHANGED
@@ -140,7 +140,7 @@ class BackWPup_EasyCron {
140
  $message = self::query_api( 'detail', array( 'id' => $id ) );
141
 
142
  if ( $message[ 'status' ] == 'success' && ! empty( $message[ 'cron_job' ] ) ) {
143
- set_site_transient( 'backwpup_easycron_' . $id, $message[ 'cron_job' ], 3600 - 30 );
144
  return $message[ 'cron_job' ];
145
  } else {
146
  if ( $message[ 'error' ][ 'code' ] == 25 ) {
140
  $message = self::query_api( 'detail', array( 'id' => $id ) );
141
 
142
  if ( $message[ 'status' ] == 'success' && ! empty( $message[ 'cron_job' ] ) ) {
143
+ set_site_transient( 'backwpup_easycron_' . $id, $message[ 'cron_job' ], HOUR_IN_SECONDS - 30 );
144
  return $message[ 'cron_job' ];
145
  } else {
146
  if ( $message[ 'error' ][ 'code' ] == 25 ) {
inc/class-file.php CHANGED
@@ -22,7 +22,7 @@ class BackWPup_File {
22
  else
23
  return trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
24
  } else {
25
- $upload_dir = wp_upload_dir();
26
  return trailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) );
27
  }
28
 
22
  else
23
  return trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
24
  } else {
25
+ $upload_dir = wp_upload_dir( null, false, true );
26
  return trailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) );
27
  }
28
 
inc/class-help.php CHANGED
@@ -14,19 +14,14 @@ class BackWPup_Help {
14
  'id' => 'plugininfo',
15
  'title' => __( 'Plugin Info', 'backwpup' ),
16
  'content' =>
17
- '<p> '.str_replace( '\"','"', sprintf( _x( '%1$s version %2$s. A project by <a href="http://inpsyde.com">Inpsyde GmbH</a>.','Plugin name and link; Plugin Version','backwpup' ), '<a href="' . translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' ) . '">' . BackWPup::get_plugin_data( 'Name' ) . '</a>' , BackWPup::get_plugin_data( 'Version' ) ) ) . '</p>'
18
  . '<p>' . esc_html__( 'BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you are welcome to redistribute it under certain conditions.', 'backwpup' ) . '</p>'
19
  ) );
20
 
21
  $text_help_sidebar = '<p><strong>' . __( 'For more information:', 'backwpup' ) . '</strong></p>';
22
- $text_help_sidebar .= '<p><a href="' . translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' ) . '">' . BackWPup::get_plugin_data( 'Name' ) . '</a></p>';
23
  $text_help_sidebar .= '<p><a href="http://wordpress.org/extend/plugins/backwpup/">' . esc_html__( 'Plugin on wordpress.org', 'backwpup' ) . '</a></p>';
24
- $text_help_sidebar .= '<p><a href="' . esc_attr__( 'https://marketpress.com/news/', 'backwpup' ) . '">' . __( 'News', 'backwpup' ) . '</a></p>';
25
- if ( class_exists( 'BackWPup_Pro', FALSE ) )
26
- $text_help_sidebar .= '<p><a href="' . esc_attr__( 'https://marketpress.com/support/forum/plugins/backwpup-pro/', 'backwpup' ) . '">' . esc_html__( 'Pro Support', 'backwpup' ) . '</a></p>';
27
- else
28
- $text_help_sidebar .= '<p><a href="' . esc_attr__( 'http://wordpress.org/support/plugin/backwpup/', 'backwpup' ) . '">' . esc_html__( 'Support', 'backwpup' ) . '</a></p>';
29
- $text_help_sidebar .= '<p><a href="' . esc_attr__( 'https://marketpress.com/documentation/backwpup-pro/', 'backwpup' ) . '">' . esc_html__( 'Manual', 'backwpup' ) . '</a></p>';
30
 
31
  get_current_screen()->set_help_sidebar( $text_help_sidebar );
32
  }
14
  'id' => 'plugininfo',
15
  'title' => __( 'Plugin Info', 'backwpup' ),
16
  'content' =>
17
+ '<p> '.str_replace( '\"','"', sprintf( _x( '%1$s version %2$s. A project by <a href="http://inpsyde.com">Inpsyde GmbH</a>.','Plugin name and link; Plugin Version','backwpup' ), '<a href="' . esc_attr__( 'http://backwpup.com', 'backwpup' ) . '">' . BackWPup::get_plugin_data( 'Name' ) . '</a>' , BackWPup::get_plugin_data( 'Version' ) ) ) . '</p>'
18
  . '<p>' . esc_html__( 'BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you are welcome to redistribute it under certain conditions.', 'backwpup' ) . '</p>'
19
  ) );
20
 
21
  $text_help_sidebar = '<p><strong>' . __( 'For more information:', 'backwpup' ) . '</strong></p>';
22
+ $text_help_sidebar .= '<p><a href="' . esc_attr__( 'http://backwpup.com', 'backwpup' ) . '">' . BackWPup::get_plugin_data( 'Name' ) . '</a></p>';
23
  $text_help_sidebar .= '<p><a href="http://wordpress.org/extend/plugins/backwpup/">' . esc_html__( 'Plugin on wordpress.org', 'backwpup' ) . '</a></p>';
24
+ $text_help_sidebar .= '<p><a href="' . esc_attr__( 'http://docs.backwpup.com', 'backwpup' ) . '">' . esc_html__( 'Manual', 'backwpup' ) . '</a></p>';
 
 
 
 
 
25
 
26
  get_current_screen()->set_help_sidebar( $text_help_sidebar );
27
  }
inc/class-install.php CHANGED
@@ -20,7 +20,7 @@ class BackWPup_Install {
20
 
21
  //changes for version before 3.0.14
22
  if ( version_compare( '3.0.13', get_site_option( 'backwpup_version' ), '>' ) && version_compare( '3.0', get_site_option( 'backwpup_version' ), '<' ) ) {
23
- $upload_dir = wp_upload_dir();
24
  $logfolder = get_site_option( 'backwpup_cfg_logfolder' );
25
  if ( empty( $logfolder ) ) {
26
  $old_log_folder = trailingslashit( str_replace( '\\', '/',$upload_dir[ 'basedir' ] ) ) . 'backwpup-' . substr( md5( md5( SECURE_AUTH_KEY ) ), 9, 5 ) . '-logs/';
20
 
21
  //changes for version before 3.0.14
22
  if ( version_compare( '3.0.13', get_site_option( 'backwpup_version' ), '>' ) && version_compare( '3.0', get_site_option( 'backwpup_version' ), '<' ) ) {
23
+ $upload_dir = wp_upload_dir( null, false, true );
24
  $logfolder = get_site_option( 'backwpup_cfg_logfolder' );
25
  if ( empty( $logfolder ) ) {
26
  $old_log_folder = trailingslashit( str_replace( '\\', '/',$upload_dir[ 'basedir' ] ) ) . 'backwpup-' . substr( md5( md5( SECURE_AUTH_KEY ) ), 9, 5 ) . '-logs/';
inc/class-job.php CHANGED
@@ -139,6 +139,11 @@ final class BackWPup_Job {
139
  */
140
  private $log_level = 'normal';
141
 
 
 
 
 
 
142
 
143
  /**
144
  * Delete some data on cloned objects
@@ -301,9 +306,9 @@ final class BackWPup_Job {
301
  $head .= "<meta name=\"backwpup_jobtype\" content=\"" . implode( '+', $this->job['type'] ) . "\" />" . PHP_EOL;
302
  $head .= str_pad( '<meta name="backwpup_backupfilesize" content="0" />', 100 ) . PHP_EOL;
303
  $head .= str_pad( '<meta name="backwpup_jobruntime" content="0" />', 100 ) . PHP_EOL;
304
- $head .= "</head>" . PHP_EOL;
305
- $head .= "<body style=\"margin:0;padding:3px;font-family:monospace;font-size:12px;line-height:15px;background-color:#000;color:#fff;white-space:nowrap;\">" . PHP_EOL;
306
- $info .= sprintf( _x( '[INFO] %1$s %2$s; A project of Inpsyde GmbH', 'Plugin name; Plugin Version; plugin url', 'backwpup' ), BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'Version' ), BackWPup::get_plugin_data( 'pluginuri' ) ) . '<br />' . PHP_EOL;
307
  if ( $this->is_debug() ) {
308
  $info .= sprintf( _x( '[INFO] WordPress %1$s on %2$s', 'WordPress Version; Blog url', 'backwpup' ), BackWPup::get_plugin_data( 'wp_version' ), esc_attr( site_url( '/' ) ) ) . '<br />' . PHP_EOL;
309
  }
@@ -532,7 +537,7 @@ final class BackWPup_Job {
532
  $token = $manager->create( $expiration );
533
  $cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[0]->ID, $expiration, 'logged_in', $token );
534
  }
535
- set_site_transient( 'backwpup_cookies', $cookies, 3600 - 30 );
536
  }
537
  } else {
538
  $cookies = '';
@@ -787,46 +792,47 @@ final class BackWPup_Job {
787
  }
788
  // execute function on job shutdown register_shutdown_function( array( $this, 'shutdown' ) );
789
  add_action( 'shutdown', array( $this, 'shutdown' ) );
790
- //remove_action('shutdown', array( $this, 'shutdown' ));
791
  if ( function_exists( 'pcntl_signal' ) ) {
792
  $signals = array(
793
- 'SIGHUP',
794
- 'SIGINT',
795
- 'SIGQUIT',
796
- 'SIGILL',
797
- 'SIGTRAP',
798
- 'SIGABRT',
799
- 'SIGBUS',
800
- 'SIGFPE',
801
- //'SIGKILL',
802
- 'SIGSEGV',
803
- //'SIGPIPE',
804
- //'SIGALRM',
805
- 'SIGTERM',
806
- 'SIGSTKFLT',
807
- 'SIGUSR1',
808
- 'SIGUSR2',
809
- //'SIGCHLD',
810
- //'SIGCONT',
811
- //'SIGSTOP',
812
- 'SIGTSTP',
813
- 'SIGTTIN',
814
- 'SIGTTOU',
815
- 'SIGURG',
816
- 'SIGXCPU',
817
- 'SIGXFSZ',
818
- //'SIGVTALRM',
819
- //'SIGPROF',
820
- 'SIGWINCH',
821
- //'SIGIO',
822
- 'SIGPWR',
823
- 'SIGSYS',
824
  );
825
  $signals = apply_filters( 'backwpup_job_signals_to_handel', $signals );
826
  declare( ticks = 1 );
 
827
  foreach ( $signals as $signal ) {
828
  if ( defined( $signal ) ) {
829
- pcntl_signal( constant( $signal ), array( $this, 'shutdown' ), false );
830
  }
831
  }
832
  }
@@ -882,7 +888,7 @@ final class BackWPup_Job {
882
  $this->steps_done[] = $this->step_working;
883
  $this->substeps_done = 0;
884
  $this->substeps_todo = 0;
885
- $this->write_running_file();
886
  }
887
  if ( count( $this->steps_done ) < count( $this->steps_todo ) - 1 ) {
888
  $this->do_restart();
@@ -898,10 +904,14 @@ final class BackWPup_Job {
898
  * Do a job restart
899
  *
900
  * @param bool $must Restart must done
901
- * @param bool $msg Log restart message
902
  */
903
  public function do_restart( $must = false ) {
904
 
 
 
 
 
 
905
  //no restart if in end step
906
  if ( $this->step_working == 'END' || ( count( $this->steps_done ) + 1 ) >= count( $this->steps_todo ) ) {
907
  return;
@@ -931,7 +941,11 @@ final class BackWPup_Job {
931
 
932
  //print message
933
  if ( $this->is_debug() ) {
934
- $this->log( sprintf( __( 'Restart after %1$d seconds.', 'backwpup' ), ceil( $execution_time ) ) );
 
 
 
 
935
  }
936
 
937
  //do things for a clean restart
@@ -956,6 +970,13 @@ final class BackWPup_Job {
956
  */
957
  public function do_restart_time( $do_restart_now = false ) {
958
 
 
 
 
 
 
 
 
959
  $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
960
 
961
  if ( empty( $job_max_execution_time ) ) {
@@ -1080,6 +1101,99 @@ final class BackWPup_Job {
1080
  return $joddata;
1081
  }
1082
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1083
 
1084
  /**
1085
  *
@@ -1091,57 +1205,13 @@ final class BackWPup_Job {
1091
  */
1092
  public function shutdown() {
1093
 
1094
- $args = func_get_args();
1095
-
1096
  //Put last error to log if one
1097
  $lasterror = error_get_last();
1098
- if ( $lasterror['type'] == E_ERROR or $lasterror['type'] == E_PARSE or $lasterror['type'] == E_CORE_ERROR or $lasterror['type'] == E_CORE_WARNING or $lasterror['type'] == E_COMPILE_ERROR or $lasterror['type'] == E_COMPILE_WARNING ) {
1099
  $this->log( $lasterror['type'], $lasterror['message'], $lasterror['file'], $lasterror['line'] );
1100
  }
1101
 
1102
- //Put signals to log
1103
- if ( ! empty( $args[0] ) ) {
1104
- $signals = array(
1105
- 'SIGHUP',
1106
- 'SIGINT',
1107
- 'SIGQUIT',
1108
- 'SIGILL',
1109
- 'SIGTRAP',
1110
- 'SIGABRT',
1111
- 'SIGBUS',
1112
- 'SIGFPE',
1113
- 'SIGKILL',
1114
- 'SIGSEGV',
1115
- 'SIGPIPE',
1116
- 'SIGALRM',
1117
- 'SIGTERM',
1118
- 'SIGSTKFLT',
1119
- 'SIGUSR1',
1120
- 'SIGUSR2',
1121
- 'SIGCHLD',
1122
- 'SIGCONT',
1123
- 'SIGSTOP',
1124
- 'SIGTSTP',
1125
- 'SIGTTIN',
1126
- 'SIGTTOU',
1127
- 'SIGURG',
1128
- 'SIGXCPU',
1129
- 'SIGXFSZ',
1130
- 'SIGVTALRM',
1131
- 'SIGPROF',
1132
- 'SIGWINCH',
1133
- 'SIGIO',
1134
- 'SIGPWR',
1135
- 'SIGSYS'
1136
- );
1137
- foreach ( $signals as $signal ) {
1138
- if ( defined( $signal ) && $args[0] === constant( $signal ) ) {
1139
- $this->log( sprintf( __( 'Signal "%s" is sent to script!', 'backwpup' ), $signal ), E_USER_ERROR );
1140
- break;
1141
- }
1142
- }
1143
- }
1144
-
1145
  if ( function_exists( 'pcntl_get_last_error' ) ) {
1146
  $error = pcntl_get_last_error();
1147
  if ( ! empty( $error ) ) {
@@ -1155,7 +1225,7 @@ final class BackWPup_Job {
1155
  }
1156
  }
1157
 
1158
- if ( function_exists( 'posix_get_last_error' ) && empty( $error ) ) {
1159
  $error = posix_get_last_error();
1160
  if ( ! empty( $error ) ) {
1161
  $error_msg = posix_strerror( $error );
@@ -1237,7 +1307,8 @@ final class BackWPup_Job {
1237
  }
1238
  }
1239
 
1240
- $error_or_warning = false;
 
1241
 
1242
  switch ( $type ) {
1243
  case E_NOTICE:
@@ -1248,8 +1319,8 @@ final class BackWPup_Job {
1248
  case E_COMPILE_WARNING:
1249
  case E_USER_WARNING:
1250
  $this->warnings ++;
1251
- $error_or_warning = true;
1252
- $message = '%y' . __( 'WARNING:', 'backwpup' ) . ' ' . $message . '%n';
1253
  break;
1254
  case E_ERROR:
1255
  case E_PARSE:
@@ -1257,8 +1328,8 @@ final class BackWPup_Job {
1257
  case E_COMPILE_ERROR:
1258
  case E_USER_ERROR:
1259
  $this->errors ++;
1260
- $error_or_warning = true;
1261
- $message = '%r' . __( 'ERROR:', 'backwpup' ) . ' ' . $message . '%n';
1262
  break;
1263
  case 8192: //E_DEPRECATED comes with php 5.3
1264
  case 16384: //E_USER_DEPRECATED comes with php 5.3
@@ -1269,8 +1340,8 @@ final class BackWPup_Job {
1269
  break;
1270
  case E_RECOVERABLE_ERROR:
1271
  $this->errors ++;
1272
- $error_or_warning = true;
1273
- $message = '%r' . __( 'RECOVERABLE ERROR:', 'backwpup' ) . ' ' . $message . '%n';
1274
  break;
1275
  default:
1276
  $message = $type . ': ' . $message;
@@ -1281,19 +1352,19 @@ final class BackWPup_Job {
1281
 
1282
  //print message to cli
1283
  if ( defined( 'WP_CLI' ) && WP_CLI ) {
1284
- $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), strip_tags( $message ) );
1285
  if ( ! call_user_func( array( '\cli\Shell', 'isPiped' ) ) ) {
 
 
 
 
 
 
1286
  $output_message = call_user_func( array( '\cli\Colors', 'colorize' ), $output_message, true );
1287
- } else {
1288
- $output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
1289
  }
1290
  WP_CLI::line( $output_message );
1291
  } elseif ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
1292
- $output_message = str_replace( array( '&hellip;', '&#160;' ), array(
1293
- '...',
1294
- ' '
1295
- ), strip_tags( $message ) ) . PHP_EOL;
1296
- $output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
1297
  fwrite( STDOUT, $output_message );
1298
  }
1299
 
@@ -1305,47 +1376,40 @@ final class BackWPup_Job {
1305
  $timestamp = '<span datetime="' . date( 'c' ) . '" ' . $debug_info . '>[' . date( 'd-M-Y H:i:s', current_time( 'timestamp' ) ) . ']</span> ';
1306
 
1307
  //set last Message
1308
- $output_message = esc_attr( $message );
1309
- $output_message = str_replace( array(
1310
- '%y',
1311
- '%r',
1312
- '%n'
1313
- ), array(
1314
- '<span style="background-color:#ffc000;color:#fff">',
1315
- '<span style="background-color:red;color:#fff">',
1316
- '</span>'
1317
- ), $output_message );
1318
- if ( $error_or_warning ) {
1319
  $this->lasterrormsg = $output_message;
1320
- } else {
 
 
 
 
 
 
1321
  $this->lastmsg = $output_message;
1322
  }
1323
  //write log file
1324
- if ( ! empty( $this->logfile ) ) {
1325
  if ( ! file_put_contents( $this->logfile, $timestamp . $output_message . '<br />' . PHP_EOL, FILE_APPEND ) ) {
1326
  $this->logfile = '';
1327
  restore_error_handler();
1328
- trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
1329
  }
1330
 
1331
  //write new log header
1332
- if ( $error_or_warning && ! empty( $this->logfile ) ) {
1333
  if ( $fd = fopen( $this->logfile, 'r+' ) ) {
1334
- $found = 0;
1335
  $file_pos = ftell( $fd );
1336
  while ( ! feof( $fd ) ) {
1337
  $line = fgets( $fd );
1338
- if ( stripos( $line, '<meta name="backwpup_errors" content="' ) !== false ) {
1339
  fseek( $fd, $file_pos );
1340
  fwrite( $fd, str_pad( '<meta name="backwpup_errors" content="' . $this->errors . '" />', 100 ) . PHP_EOL );
1341
- $found ++;
1342
  }
1343
- if ( stripos( $line, '<meta name="backwpup_warnings" content="' ) !== false ) {
1344
  fseek( $fd, $file_pos );
1345
  fwrite( $fd, str_pad( '<meta name="backwpup_warnings" content="' . $this->warnings . '" />', 100 ) . PHP_EOL );
1346
- $found ++;
1347
- }
1348
- if ( $found >= 2 ) {
1349
  break;
1350
  }
1351
  $file_pos = ftell( $fd );
@@ -1353,13 +1417,10 @@ final class BackWPup_Job {
1353
  fclose( $fd );
1354
  }
1355
  }
1356
-
1357
- } else {
1358
- trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
1359
  }
1360
 
1361
  //write working data
1362
- $this->update_working_data( $error_or_warning );
1363
 
1364
  //true for no more php error handling.
1365
  return true;
@@ -1370,11 +1431,10 @@ final class BackWPup_Job {
1370
  * Write the Working data to display the process or that i can executes again
1371
  * The write will only done every second
1372
  *
1373
- * @global wpdb $wpdb
1374
  */
1375
- public function update_working_data() {
1376
  global $wpdb;
1377
- /* @var wpdb $wpdb */
1378
 
1379
  //to reduce server load
1380
  if ( get_site_option( 'backwpup_cfg_jobwaittimems' ) > 0 && get_site_option( 'backwpup_cfg_jobwaittimems' ) <= 500000 ) {
@@ -1386,7 +1446,7 @@ final class BackWPup_Job {
1386
 
1387
  //only run every 1 sec.
1388
  $time_to_update = microtime( true ) - $this->timestamp_last_update;
1389
- if ( $time_to_update < 1 ) {
1390
  return;
1391
  }
1392
 
@@ -1414,7 +1474,7 @@ final class BackWPup_Job {
1414
 
1415
  //check if job aborted
1416
  if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1417
- if ( $this->step_working != 'END' ) {
1418
  $this->end();
1419
  }
1420
  } else {
@@ -1423,7 +1483,7 @@ final class BackWPup_Job {
1423
  }
1424
  }
1425
 
1426
- public function write_running_file() {
1427
 
1428
  $clone = clone $this;
1429
  $data = '<?php //' . serialize( $clone );
@@ -1485,7 +1545,7 @@ final class BackWPup_Job {
1485
  } elseif ( $this->warnings > 0 ) {
1486
  $this->log( sprintf( __( 'Job finished with warnings in %s seconds. Please resolve them for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_WARNING );
1487
  } else {
1488
- $this->log( sprintf( __( 'Job done in %s seconds.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time, E_USER_NOTICE ) );
1489
  }
1490
 
1491
  //Update job options
@@ -1519,57 +1579,45 @@ final class BackWPup_Job {
1519
  fclose( $fd );
1520
  }
1521
 
1522
- //logfile end
1523
- file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
1524
-
1525
  //Send mail with log
1526
  $sendmail = false;
1527
- if ( $this->errors > 0 && ! empty( $this->job['mailerroronly'] ) && ! empty( $this->job['mailaddresslog'] ) ) {
1528
  $sendmail = true;
1529
  }
1530
- if ( empty( $this->job['mailerroronly'] ) && ! empty( $this->job['mailaddresslog'] ) ) {
1531
- $sendmail = true;
1532
  }
1533
  if ( $sendmail ) {
1534
  //special subject
1535
  $status = __( 'SUCCESSFUL', 'backwpup' );
1536
- $priority = 3; //Normal
1537
  if ( $this->warnings > 0 ) {
1538
  $status = __( 'WARNING', 'backwpup' );
1539
- $priority = 2; //High
1540
  }
1541
  if ( $this->errors > 0 ) {
1542
  $status = __( 'ERROR', 'backwpup' );
1543
- $priority = 1; //Highest
1544
  }
1545
 
1546
  $subject = sprintf( __( '[%3$s] BackWPup log %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $this->start_time, true ), esc_attr( $this->job['name'] ), $status );
1547
  $headers = array();
1548
  $headers[] = 'Content-Type: text/html; charset=' . get_bloginfo( 'charset' );
1549
- /* $headers[] = 'X-Priority: ' . $priority; */ // Priority not working with header setting
1550
- if ( ! empty( $this->job['mailaddresssenderlog'] ) ) {
1551
- if ( false === $start_mail = strpos( $this->job['mailaddresssenderlog'], '<' ) ) {
1552
- if ( false === strpos( $this->job['mailaddresssenderlog'], '@' ) ) {
1553
- $this->job['mailaddresssenderlog'] = '"' . str_replace( array(
1554
- '<',
1555
- '>',
1556
- '@'
1557
- ), '', $this->job['mailaddresssenderlog'] ) . '" <' . get_bloginfo( 'admin_email' ) . '>';
1558
- }
1559
- } elseif ( false === strpos( $this->job['mailaddresssenderlog'], '>', $start_mail ) ) {
1560
- $this->job['mailaddresssenderlog'] = '"' . str_replace( array( '<', '>', '@' ), '', substr( $this->job['mailaddresssenderlog'], 0, $start_mail ) ) . '" <' . get_bloginfo( 'admin_email' ) . '>';
1561
  }
1562
 
1563
  $headers[] = 'From: ' . $this->job['mailaddresssenderlog'];
1564
  }
1565
-
1566
  wp_mail( $this->job['mailaddresslog'], $subject, file_get_contents( $this->logfile ), $headers );
1567
  }
1568
  }
1569
 
1570
  //set done
1571
  $this->substeps_done = 1;
1572
- $this->steps_done[] = 'END';
1573
 
1574
  //clean up temp
1575
  self::clean_temp_folder();
@@ -1579,6 +1627,9 @@ final class BackWPup_Job {
1579
  restore_exception_handler();
1580
  restore_error_handler();
1581
 
 
 
 
1582
  BackWPup_Cron::check_cleanup();
1583
 
1584
  exit();
@@ -1902,7 +1953,7 @@ final class BackWPup_Job {
1902
 
1903
  /**
1904
  *
1905
- * Gifs back a array of files to backup in the selected folder
1906
  *
1907
  * @param string $folder the folder to get the files from
1908
  *
@@ -1985,7 +2036,7 @@ final class BackWPup_Job {
1985
  $manifest['blog_info']['language'] = get_bloginfo( 'language' );
1986
  $manifest['blog_info']['name'] = get_bloginfo( 'name' );
1987
  $manifest['blog_info']['abspath'] = ABSPATH;
1988
- $manifest['blog_info']['uploads'] = wp_upload_dir();
1989
  $manifest['blog_info']['contents']['basedir'] = WP_CONTENT_DIR;
1990
  $manifest['blog_info']['contents']['baseurl'] = WP_CONTENT_URL;
1991
  $manifest['blog_info']['plugins']['basedir'] = WP_PLUGIN_DIR;
@@ -2434,7 +2485,7 @@ final class BackWPup_Job {
2434
  $content .= '//' . $folder . PHP_EOL;
2435
  }
2436
 
2437
- if ( ! empty( $content ) ) {
2438
  file_put_contents( $file, $content, FILE_APPEND );
2439
  }
2440
  }
139
  */
140
  private $log_level = 'normal';
141
 
142
+ /**
143
+ * @var int Signal of signal handler
144
+ */
145
+ private $signal = 0;
146
+
147
 
148
  /**
149
  * Delete some data on cloned objects
306
  $head .= "<meta name=\"backwpup_jobtype\" content=\"" . implode( '+', $this->job['type'] ) . "\" />" . PHP_EOL;
307
  $head .= str_pad( '<meta name="backwpup_backupfilesize" content="0" />', 100 ) . PHP_EOL;
308
  $head .= str_pad( '<meta name="backwpup_jobruntime" content="0" />', 100 ) . PHP_EOL;
309
+ $head .= '</head>' . PHP_EOL;
310
+ $head .= '<body style="margin:0;padding:3px;font-family:monospace;font-size:12px;line-height:15px;background-color:black;color:#c0c0c0;white-space:nowrap;">' . PHP_EOL;
311
+ $info .= sprintf( _x( '[INFO] %1$s %2$s; A project of Inpsyde GmbH', 'Plugin name; Plugin Version; plugin url', 'backwpup' ), BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'Version' ), __( 'http://backwpup.com', 'backwpup' ) ) . '<br />' . PHP_EOL;
312
  if ( $this->is_debug() ) {
313
  $info .= sprintf( _x( '[INFO] WordPress %1$s on %2$s', 'WordPress Version; Blog url', 'backwpup' ), BackWPup::get_plugin_data( 'wp_version' ), esc_attr( site_url( '/' ) ) ) . '<br />' . PHP_EOL;
314
  }
537
  $token = $manager->create( $expiration );
538
  $cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[0]->ID, $expiration, 'logged_in', $token );
539
  }
540
+ set_site_transient( 'backwpup_cookies', $cookies, HOUR_IN_SECONDS - 30 );
541
  }
542
  } else {
543
  $cookies = '';
792
  }
793
  // execute function on job shutdown register_shutdown_function( array( $this, 'shutdown' ) );
794
  add_action( 'shutdown', array( $this, 'shutdown' ) );
795
+
796
  if ( function_exists( 'pcntl_signal' ) ) {
797
  $signals = array(
798
+ 'SIGHUP', //Term
799
+ 'SIGINT', //Term
800
+ 'SIGQUIT', //Core
801
+ 'SIGILL', //Core
802
+ //'SIGTRAP', //Core
803
+ 'SIGABRT', //Core
804
+ 'SIGBUS', //Core
805
+ 'SIGFPE', //Core
806
+ //'SIGKILL', //Term
807
+ 'SIGSEGV', //Core
808
+ //'SIGPIPE', Term
809
+ //'SIGALRM', Term
810
+ 'SIGTERM', //Term
811
+ 'SIGSTKFLT', //Term
812
+ 'SIGUSR1',//Term
813
+ 'SIGUSR2', //Term
814
+ //'SIGCHLD', //Ign
815
+ //'SIGCONT', //Cont
816
+ //'SIGSTOP', //Stop
817
+ //'SIGTSTP', //Stop
818
+ //'SIGTTIN', //Stop
819
+ //'SIGTTOU', //Stop
820
+ //'SIGURG', //Ign
821
+ 'SIGXCPU', //Core
822
+ 'SIGXFSZ', //Core
823
+ //'SIGVTALRM', //Term
824
+ //'SIGPROF', //Term
825
+ //'SIGWINCH', //Ign
826
+ //'SIGIO', //Term
827
+ 'SIGPWR', //Term
828
+ 'SIGSYS', //Core
829
  );
830
  $signals = apply_filters( 'backwpup_job_signals_to_handel', $signals );
831
  declare( ticks = 1 );
832
+ $this->signal = 0;
833
  foreach ( $signals as $signal ) {
834
  if ( defined( $signal ) ) {
835
+ pcntl_signal( constant( $signal ), array( $this, 'signal_handler' ), false );
836
  }
837
  }
838
  }
888
  $this->steps_done[] = $this->step_working;
889
  $this->substeps_done = 0;
890
  $this->substeps_todo = 0;
891
+ $this->update_working_data( true );
892
  }
893
  if ( count( $this->steps_done ) < count( $this->steps_todo ) - 1 ) {
894
  $this->do_restart();
904
  * Do a job restart
905
  *
906
  * @param bool $must Restart must done
 
907
  */
908
  public function do_restart( $must = false ) {
909
 
910
+ //restart must done if signal
911
+ if ( $this->signal !== 0 ) {
912
+ $must = true;
913
+ }
914
+
915
  //no restart if in end step
916
  if ( $this->step_working == 'END' || ( count( $this->steps_done ) + 1 ) >= count( $this->steps_todo ) ) {
917
  return;
941
 
942
  //print message
943
  if ( $this->is_debug() ) {
944
+ if ( $execution_time !== 0 ) {
945
+ $this->log( sprintf( __( 'Restart after %1$d seconds.', 'backwpup' ), ceil( $execution_time ) ) );
946
+ } elseif ( $this->signal !== 0 ) {
947
+ $this->log( __( 'Restart after getting signal.', 'backwpup' ) );
948
+ }
949
  }
950
 
951
  //do things for a clean restart
970
  */
971
  public function do_restart_time( $do_restart_now = false ) {
972
 
973
+ //do restart after signel is send
974
+ if ( $this->signal !== 0 ) {
975
+ $this->steps_data[ $this->step_working ]['SAVE_STEP_TRY'] = $this->steps_data[ $this->step_working ]['STEP_TRY'];
976
+ $this->steps_data[ $this->step_working ]['STEP_TRY'] -= 1;
977
+ $this->do_restart( true );
978
+ }
979
+
980
  $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
981
 
982
  if ( empty( $job_max_execution_time ) ) {
1101
  return $joddata;
1102
  }
1103
 
1104
+ /**
1105
+ * Signal handler
1106
+ * @param $signal_send
1107
+ */
1108
+ public function signal_handler( $signal_send ) {
1109
+
1110
+ //known signals
1111
+ $signals = array(
1112
+ 'SIGHUP' => array(
1113
+ 'description' => _x( 'Hangup detected on controlling terminal or death of controlling process', 'SIGHUP: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1114
+ 'error' => true
1115
+ ),
1116
+ 'SIGINT' => array(
1117
+ 'description' => _x( 'Interrupt from keyboard', 'SIGINT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1118
+ 'error' => true
1119
+ ),
1120
+ 'SIGQUIT' => array(
1121
+ 'description' => _x( 'Quit from keyboard', 'SIGQUIT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1122
+ 'error' => true
1123
+ ),
1124
+ 'SIGILL' => array(
1125
+ 'description' => _x( 'Illegal Instruction', 'SIGILL: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1126
+ 'error' => true
1127
+ ),
1128
+ 'SIGABRT' => array(
1129
+ 'description' => _x( 'Abort signal from abort(3)', 'SIGABRT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1130
+ 'error' => false
1131
+ ),
1132
+ 'SIGBUS' => array(
1133
+ 'description' => _x( 'Bus error (bad memory access)', 'SIGBUS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1134
+ 'error' => true
1135
+ ),
1136
+ 'SIGFPE' => array(
1137
+ 'description' => _x( 'Floating point exception', 'SIGFPE: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1138
+ 'error' => true
1139
+ ),
1140
+ 'SIGSEGV' => array(
1141
+ 'description' => _x( 'Invalid memory reference', 'SIGSEGV: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1142
+ 'error' => true
1143
+ ),
1144
+ 'SIGTERM' => array(
1145
+ 'description' => _x( 'Termination signal', 'SIGTERM: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1146
+ 'error' => false
1147
+ ),
1148
+ 'SIGSTKFLT' => array(
1149
+ 'description' => _x( 'Stack fault on coprocessor', 'SIGSTKFLT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1150
+ 'error' => true
1151
+ ),
1152
+ 'SIGUSR1' => array(
1153
+ 'description' => _x( 'User-defined signal 1', 'SIGUSR1: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1154
+ 'error' => false
1155
+ ),
1156
+ 'SIGUSR2' => array(
1157
+ 'description' => _x( 'User-defined signal 2', 'SIGUSR2: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1158
+ 'error' => false
1159
+ ),
1160
+ 'SIGURG' => array(
1161
+ 'description' => _x( 'Urgent condition on socket', 'SIGURG: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1162
+ 'error' => false
1163
+ ),
1164
+ 'SIGXCPU' => array(
1165
+ 'description' => _x( 'CPU time limit exceeded', 'SIGXCPU: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1166
+ 'error' => true
1167
+ ),
1168
+ 'SIGXFSZ' => array(
1169
+ 'description' => _x( 'File size limit exceeded', 'SIGXFSZ: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1170
+ 'error' => true
1171
+ ),
1172
+ 'SIGPWR' => array(
1173
+ 'description' => _x( 'Power failure', 'SIGPWR: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1174
+ 'error' => false
1175
+ ),
1176
+ 'SIGSYS' => array(
1177
+ 'description' => _x( 'Bad argument to routine', 'SIGSYS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details', 'backwpup' ),
1178
+ 'error' => true
1179
+ ),
1180
+ );
1181
+
1182
+ foreach ( $signals as $signal => $config ) {
1183
+ if ( defined( $signal ) && $signal_send === constant( $signal ) ) {
1184
+ if ( $config['error'] || php_sapi_name() == 'cli' ) {
1185
+ $this->log( sprintf( __( 'Signal "%1$s" (%2$s) is sent to script!', 'backwpup' ), $signal, $config['description'] ), E_USER_ERROR );
1186
+ $this->signal = $signal_send;
1187
+ $this->do_restart( true );
1188
+ } else {
1189
+ $this->log( sprintf( __( 'Signal "%1$s" (%2$s) is sent to script!', 'backwpup' ), $signal, $config['description'] ) );
1190
+ $this->signal = $signal_send;
1191
+ }
1192
+ break;
1193
+ }
1194
+ }
1195
+
1196
+ }
1197
 
1198
  /**
1199
  *
1205
  */
1206
  public function shutdown() {
1207
 
 
 
1208
  //Put last error to log if one
1209
  $lasterror = error_get_last();
1210
+ if ( $lasterror['type'] === E_ERROR || $lasterror['type'] === E_PARSE || $lasterror['type'] === E_CORE_ERROR || $lasterror['type'] === E_CORE_WARNING || $lasterror['type'] === E_COMPILE_ERROR || $lasterror['type'] === E_COMPILE_WARNING ) {
1211
  $this->log( $lasterror['type'], $lasterror['message'], $lasterror['file'], $lasterror['line'] );
1212
  }
1213
 
1214
+ $error = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1215
  if ( function_exists( 'pcntl_get_last_error' ) ) {
1216
  $error = pcntl_get_last_error();
1217
  if ( ! empty( $error ) ) {
1225
  }
1226
  }
1227
 
1228
+ if ( function_exists( 'posix_get_last_error' ) && ! $error ) {
1229
  $error = posix_get_last_error();
1230
  if ( ! empty( $error ) ) {
1231
  $error_msg = posix_strerror( $error );
1307
  }
1308
  }
1309
 
1310
+ $error = false;
1311
+ $warning = false;
1312
 
1313
  switch ( $type ) {
1314
  case E_NOTICE:
1319
  case E_COMPILE_WARNING:
1320
  case E_USER_WARNING:
1321
  $this->warnings ++;
1322
+ $warning = true;
1323
+ $message = __( 'WARNING:', 'backwpup' ) . ' ' . $message;
1324
  break;
1325
  case E_ERROR:
1326
  case E_PARSE:
1328
  case E_COMPILE_ERROR:
1329
  case E_USER_ERROR:
1330
  $this->errors ++;
1331
+ $error = true;
1332
+ $message = __( 'ERROR:', 'backwpup' ) . ' ' . $message;
1333
  break;
1334
  case 8192: //E_DEPRECATED comes with php 5.3
1335
  case 16384: //E_USER_DEPRECATED comes with php 5.3
1340
  break;
1341
  case E_RECOVERABLE_ERROR:
1342
  $this->errors ++;
1343
+ $error = true;
1344
+ $message = __( 'RECOVERABLE ERROR:', 'backwpup' ) . ' ' . $message;
1345
  break;
1346
  default:
1347
  $message = $type . ': ' . $message;
1352
 
1353
  //print message to cli
1354
  if ( defined( 'WP_CLI' ) && WP_CLI ) {
1355
+ $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), esc_html( $message ) );
1356
  if ( ! call_user_func( array( '\cli\Shell', 'isPiped' ) ) ) {
1357
+ if ( $error ) {
1358
+ $output_message = '%r' . $output_message . '%n';
1359
+ }
1360
+ if ( $warning ) {
1361
+ $output_message = '%y' . $output_message . '%n';
1362
+ }
1363
  $output_message = call_user_func( array( '\cli\Colors', 'colorize' ), $output_message, true );
 
 
1364
  }
1365
  WP_CLI::line( $output_message );
1366
  } elseif ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
1367
+ $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), esc_html( $message ) ) . PHP_EOL;
 
 
 
 
1368
  fwrite( STDOUT, $output_message );
1369
  }
1370
 
1376
  $timestamp = '<span datetime="' . date( 'c' ) . '" ' . $debug_info . '>[' . date( 'd-M-Y H:i:s', current_time( 'timestamp' ) ) . ']</span> ';
1377
 
1378
  //set last Message
1379
+ if ( $error ) {
1380
+ $output_message = '<span style="background-color:red;color:#c0c0c0;">' . esc_html( $message ) . '</span>';
 
 
 
 
 
 
 
 
 
1381
  $this->lasterrormsg = $output_message;
1382
+ }
1383
+ elseif ( $warning ) {
1384
+ $output_message = '<span style="background-color:#ffc000;color:#c0c0c0;">' . esc_html( $message ) . '</span>';
1385
+ $this->lasterrormsg = $output_message;
1386
+ }
1387
+ else {
1388
+ $output_message = esc_html( $message );
1389
  $this->lastmsg = $output_message;
1390
  }
1391
  //write log file
1392
+ if ( $this->logfile ) {
1393
  if ( ! file_put_contents( $this->logfile, $timestamp . $output_message . '<br />' . PHP_EOL, FILE_APPEND ) ) {
1394
  $this->logfile = '';
1395
  restore_error_handler();
1396
+ trigger_error( esc_html( $message ), $type );
1397
  }
1398
 
1399
  //write new log header
1400
+ if ( ( $error || $warning ) && $this->logfile ) {
1401
  if ( $fd = fopen( $this->logfile, 'r+' ) ) {
 
1402
  $file_pos = ftell( $fd );
1403
  while ( ! feof( $fd ) ) {
1404
  $line = fgets( $fd );
1405
+ if ( $error && stripos( $line, '<meta name="backwpup_errors" content="' ) !== false ) {
1406
  fseek( $fd, $file_pos );
1407
  fwrite( $fd, str_pad( '<meta name="backwpup_errors" content="' . $this->errors . '" />', 100 ) . PHP_EOL );
1408
+ break;
1409
  }
1410
+ if ( $warning && stripos( $line, '<meta name="backwpup_warnings" content="' ) !== false ) {
1411
  fseek( $fd, $file_pos );
1412
  fwrite( $fd, str_pad( '<meta name="backwpup_warnings" content="' . $this->warnings . '" />', 100 ) . PHP_EOL );
 
 
 
1413
  break;
1414
  }
1415
  $file_pos = ftell( $fd );
1417
  fclose( $fd );
1418
  }
1419
  }
 
 
 
1420
  }
1421
 
1422
  //write working data
1423
+ $this->update_working_data( $error || $warning );
1424
 
1425
  //true for no more php error handling.
1426
  return true;
1431
  * Write the Working data to display the process or that i can executes again
1432
  * The write will only done every second
1433
  *
1434
+ * @param bool $must
1435
  */
1436
+ public function update_working_data( $must = false ) {
1437
  global $wpdb;
 
1438
 
1439
  //to reduce server load
1440
  if ( get_site_option( 'backwpup_cfg_jobwaittimems' ) > 0 && get_site_option( 'backwpup_cfg_jobwaittimems' ) <= 500000 ) {
1446
 
1447
  //only run every 1 sec.
1448
  $time_to_update = microtime( true ) - $this->timestamp_last_update;
1449
+ if ( $time_to_update < 1 && ! $must ) {
1450
  return;
1451
  }
1452
 
1474
 
1475
  //check if job aborted
1476
  if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1477
+ if ( $this->step_working !== 'END' ) {
1478
  $this->end();
1479
  }
1480
  } else {
1483
  }
1484
  }
1485
 
1486
+ private function write_running_file() {
1487
 
1488
  $clone = clone $this;
1489
  $data = '<?php //' . serialize( $clone );
1545
  } elseif ( $this->warnings > 0 ) {
1546
  $this->log( sprintf( __( 'Job finished with warnings in %s seconds. Please resolve them for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_WARNING );
1547
  } else {
1548
+ $this->log( sprintf( __( 'Job done in %s seconds.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ) );
1549
  }
1550
 
1551
  //Update job options
1579
  fclose( $fd );
1580
  }
1581
 
 
 
 
1582
  //Send mail with log
1583
  $sendmail = false;
1584
+ if ( $this->job['mailaddresslog'] ) {
1585
  $sendmail = true;
1586
  }
1587
+ if ( $this->errors === 0 && $this->job['mailerroronly'] ) {
1588
+ $sendmail = false;
1589
  }
1590
  if ( $sendmail ) {
1591
  //special subject
1592
  $status = __( 'SUCCESSFUL', 'backwpup' );
 
1593
  if ( $this->warnings > 0 ) {
1594
  $status = __( 'WARNING', 'backwpup' );
 
1595
  }
1596
  if ( $this->errors > 0 ) {
1597
  $status = __( 'ERROR', 'backwpup' );
 
1598
  }
1599
 
1600
  $subject = sprintf( __( '[%3$s] BackWPup log %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $this->start_time, true ), esc_attr( $this->job['name'] ), $status );
1601
  $headers = array();
1602
  $headers[] = 'Content-Type: text/html; charset=' . get_bloginfo( 'charset' );
1603
+ if ( $this->job['mailaddresssenderlog'] ) {
1604
+ $this->job['mailaddresssenderlog'] = str_replace( array( '&lt;', '&gt;' ), array( '<', '>' ), $this->job['mailaddresssenderlog'] );
1605
+
1606
+ $bracket_pos = strpos( $this->job['mailaddresssenderlog'], '<' );
1607
+ $at_pos = strpos( $this->job['mailaddresssenderlog'], '@' );
1608
+ if ( $bracket_pos === false || $at_pos === false ) {
1609
+ $this->job['mailaddresssenderlog'] = str_replace( array( '<', '>' ), '', $this->job['mailaddresssenderlog'] ) . ' <' . get_bloginfo( 'admin_email' ) . '>';
 
 
 
 
 
1610
  }
1611
 
1612
  $headers[] = 'From: ' . $this->job['mailaddresssenderlog'];
1613
  }
 
1614
  wp_mail( $this->job['mailaddresslog'], $subject, file_get_contents( $this->logfile ), $headers );
1615
  }
1616
  }
1617
 
1618
  //set done
1619
  $this->substeps_done = 1;
1620
+ $this->steps_done[] = 'END';
1621
 
1622
  //clean up temp
1623
  self::clean_temp_folder();
1627
  restore_exception_handler();
1628
  restore_error_handler();
1629
 
1630
+ //logfile end
1631
+ file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
1632
+
1633
  BackWPup_Cron::check_cleanup();
1634
 
1635
  exit();
1953
 
1954
  /**
1955
  *
1956
+ * Get back a array of files to backup in the selected folder
1957
  *
1958
  * @param string $folder the folder to get the files from
1959
  *
2036
  $manifest['blog_info']['language'] = get_bloginfo( 'language' );
2037
  $manifest['blog_info']['name'] = get_bloginfo( 'name' );
2038
  $manifest['blog_info']['abspath'] = ABSPATH;
2039
+ $manifest['blog_info']['uploads'] = wp_upload_dir( null, false, true );
2040
  $manifest['blog_info']['contents']['basedir'] = WP_CONTENT_DIR;
2041
  $manifest['blog_info']['contents']['baseurl'] = WP_CONTENT_URL;
2042
  $manifest['blog_info']['plugins']['basedir'] = WP_PLUGIN_DIR;
2485
  $content .= '//' . $folder . PHP_EOL;
2486
  }
2487
 
2488
+ if ( $content ) {
2489
  file_put_contents( $file, $content, FILE_APPEND );
2490
  }
2491
  }
inc/class-jobtype-dbcheck.php CHANGED
@@ -12,9 +12,9 @@ class BackWPup_JobType_DBCheck extends BackWPup_JobTypes {
12
  $this->info[ 'ID' ] = 'DBCHECK';
13
  $this->info[ 'name' ] = __( 'DB Check', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'Check database tables', 'backwpup' );
15
- $this->info[ 'URI' ] = translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' );
16
- $this->info[ 'author' ] = BackWPup::get_plugin_data( 'Author' );
17
- $this->info[ 'authorURI' ] = translate( BackWPup::get_plugin_data( 'AuthorURI' ), 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
12
  $this->info[ 'ID' ] = 'DBCHECK';
13
  $this->info[ 'name' ] = __( 'DB Check', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'Check database tables', 'backwpup' );
15
+ $this->info[ 'URI' ] = __( 'http://backwpup.com', 'backwpup' );
16
+ $this->info[ 'author' ] = 'Inpsyde GmbH';
17
+ $this->info[ 'authorURI' ] = __( 'http://inpsyde.com', 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
inc/class-jobtype-dbdump.php CHANGED
@@ -12,9 +12,9 @@ class BackWPup_JobType_DBDump extends BackWPup_JobTypes {
12
  $this->info[ 'ID' ] = 'DBDUMP';
13
  $this->info[ 'name' ] = __( 'DB Backup', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'Database backup', 'backwpup' );
15
- $this->info[ 'URI' ] = translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' );
16
- $this->info[ 'author' ] = BackWPup::get_plugin_data( 'Author' );
17
- $this->info[ 'authorURI' ] = translate( BackWPup::get_plugin_data( 'AuthorURI' ), 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
12
  $this->info[ 'ID' ] = 'DBDUMP';
13
  $this->info[ 'name' ] = __( 'DB Backup', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'Database backup', 'backwpup' );
15
+ $this->info[ 'URI' ] = __( 'http://backwpup.com', 'backwpup' );
16
+ $this->info[ 'author' ] = 'Inpsyde GmbH';
17
+ $this->info[ 'authorURI' ] = __( 'http://inpsyde.com', 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
inc/class-jobtype-file.php CHANGED
@@ -4,8 +4,6 @@
4
  */
5
  class BackWPup_JobType_File extends BackWPup_JobTypes {
6
 
7
- private $folers_to_backup = array();
8
-
9
  /**
10
  *
11
  */
@@ -14,9 +12,9 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
14
  $this->info[ 'ID' ] = 'FILE';
15
  $this->info[ 'name' ] = __( 'Files', 'backwpup' );
16
  $this->info[ 'description' ] = __( 'File backup', 'backwpup' );
17
- $this->info[ 'URI' ] = translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' );
18
- $this->info[ 'author' ] = BackWPup::get_plugin_data( 'Author' );
19
- $this->info[ 'authorURI' ] = translate( BackWPup::get_plugin_data( 'AuthorURI' ), 'backwpup' );
20
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
21
 
22
  }
@@ -382,27 +380,29 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
382
  */
383
  public function job_run( BackWPup_Job $job_object ) {
384
 
 
 
 
 
 
385
  $abs_path = realpath( ABSPATH );
386
- if ( $job_object->job[ 'backupabsfolderup' ] ) {
387
  $abs_path = dirname( $abs_path );
388
  }
389
  $abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
390
 
391
- $job_object->log( sprintf( __( '%d. Trying to make a list of folders to back up&#160;&hellip;', 'backwpup' ), $job_object->steps_data[ $job_object->step_working ][ 'STEP_TRY' ] ) );
392
- $job_object->substeps_todo = 8;
393
-
394
- $job_object->temp[ 'folders_to_backup' ]=array();
395
 
396
  //Folder lists for blog folders
397
- if ( $job_object->substeps_done == 0 ) {
398
- if ( $abs_path && ! empty( $job_object->job[ 'backuproot'] ) ) {
399
  $abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
400
- $excludes = $this->get_exclude_dirs( $abs_path );
401
- foreach( $job_object->job[ 'backuprootexcludedirs' ] as $folder )
402
- $excludes[] = trailingslashit( $abs_path . $folder );
 
403
  $this->get_folder_list( $job_object, $abs_path, $excludes );
404
- $job_object->add_folders_to_backup( $this->folers_to_backup );
405
- $this->folers_to_backup = array();
406
  }
407
  $job_object->substeps_done = 1;
408
  $job_object->update_working_data();
@@ -411,137 +411,132 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
411
 
412
  if ( $job_object->substeps_done === 1 ) {
413
  $wp_content_dir = realpath( WP_CONTENT_DIR );
414
- if ( $wp_content_dir && ! empty( $job_object->job[ 'backupcontent'] ) ) {
415
  $wp_content_dir = trailingslashit( str_replace( '\\', '/', $wp_content_dir ) );
416
- $excludes = $this->get_exclude_dirs( $wp_content_dir );
417
- foreach( $job_object->job[ 'backupcontentexcludedirs' ] as $folder )
418
  $excludes[] = trailingslashit( $wp_content_dir . $folder );
 
419
  $this->get_folder_list( $job_object, $wp_content_dir, $excludes );
420
- $job_object->add_folders_to_backup( $this->folers_to_backup );
421
- $this->folers_to_backup = array();
422
  }
423
  $job_object->substeps_done = 2;
424
  $job_object->update_working_data();
425
  $job_object->do_restart_time();
426
  }
427
 
428
- if ( $job_object->substeps_done == 2 ) {
429
  $wp_plugin_dir = realpath( WP_PLUGIN_DIR );
430
- if ( $wp_plugin_dir && ! empty( $job_object->job[ 'backupplugins'] ) ) {
431
  $wp_plugin_dir = trailingslashit( str_replace( '\\', '/', $wp_plugin_dir ) );
432
- $excludes = $this->get_exclude_dirs( $wp_plugin_dir );
433
- foreach( $job_object->job[ 'backuppluginsexcludedirs' ] as $folder )
434
  $excludes[] = trailingslashit( $wp_plugin_dir . $folder );
 
435
  $this->get_folder_list( $job_object, $wp_plugin_dir, $excludes );
436
- $job_object->add_folders_to_backup( $this->folers_to_backup );
437
- $this->folers_to_backup = array();
438
  }
439
  $job_object->substeps_done = 3;
440
  $job_object->update_working_data();
441
  $job_object->do_restart_time();
442
  }
443
 
444
- if ( $job_object->substeps_done == 3 ) {
445
  $theme_root = realpath( get_theme_root() );
446
- if ( $theme_root && ! empty( $job_object->job[ 'backupthemes'] ) ) {
447
  $theme_root = trailingslashit( str_replace( '\\', '/', $theme_root ) );
448
- $excludes = $this->get_exclude_dirs( $theme_root );
449
- foreach( $job_object->job[ 'backupthemesexcludedirs' ] as $folder )
450
  $excludes[] = trailingslashit( $theme_root . $folder );
 
451
  $this->get_folder_list( $job_object, $theme_root, $excludes );
452
- $job_object->add_folders_to_backup( $this->folers_to_backup );
453
- $this->folers_to_backup = array();
454
  }
455
  $job_object->substeps_done = 4;
456
  $job_object->update_working_data();
457
  $job_object->do_restart_time();
458
  }
459
 
460
- if( $job_object->substeps_done == 4 ) {
461
  $upload_dir = realpath( BackWPup_File::get_upload_dir() );
462
- if ( $upload_dir && ! empty( $job_object->job[ 'backupuploads'] ) ) {
463
  $upload_dir = trailingslashit( str_replace( '\\', '/', $upload_dir ) );
464
- $excludes = $this->get_exclude_dirs( $upload_dir );
465
- foreach( $job_object->job[ 'backupuploadsexcludedirs' ] as $folder )
466
  $excludes[] = trailingslashit( $upload_dir . $folder );
 
467
  $this->get_folder_list( $job_object, $upload_dir, $excludes );
468
- $job_object->add_folders_to_backup( $this->folers_to_backup );
469
- $this->folers_to_backup = array();
470
  }
471
  $job_object->substeps_done = 5;
472
  $job_object->update_working_data();
473
  $job_object->do_restart_time();
474
  }
475
 
476
- if( $job_object->substeps_done == 5 ) {
477
  //include dirs
478
- if ( $job_object->job[ 'dirinclude' ] ) {
479
- $dirinclude = explode( ',', $job_object->job[ 'dirinclude' ] );
480
  $dirinclude = array_unique( $dirinclude );
481
  //Crate file list for includes
482
  foreach ( $dirinclude as $dirincludevalue ) {
483
- if ( is_dir( $dirincludevalue ) )
484
  $this->get_folder_list( $job_object, $dirincludevalue );
 
485
  }
486
- $job_object->add_folders_to_backup( $this->folers_to_backup );
487
- $this->folers_to_backup = array();
488
  }
489
  $job_object->substeps_done = 6;
490
  $job_object->update_working_data();
491
  $job_object->do_restart_time();
492
  }
493
 
494
- if( $job_object->substeps_done == 6 ) {
495
  //clean up folder list
496
  $folders = $job_object->get_folders_to_backup();
497
- $job_object->add_folders_to_backup( $folders, TRUE );
 
498
  $job_object->update_working_data();
499
  $job_object->do_restart_time();
500
- $job_object->substeps_done = 7;
501
  }
502
 
503
  //add extra files if selected
504
- if ( ! empty( $job_object->job[ 'backupspecialfiles'] ) ) {
505
  if ( is_readable( ABSPATH . 'wp-config.php' ) ) {
506
- $job_object->additional_files_to_backup[ ] = str_replace( '\\', '/', ABSPATH . 'wp-config.php' );
507
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'wp-config.php' ) );
508
- }
509
- elseif ( BackWPup_File::is_in_open_basedir( dirname( ABSPATH ) . '/wp-config.php' ) ) {
510
  if ( is_readable( dirname( ABSPATH ) . '/wp-config.php' ) && ! is_readable( dirname( ABSPATH ) . '/wp-settings.php' ) ) {
511
- $job_object->additional_files_to_backup[ ] = str_replace( '\\', '/', dirname( ABSPATH ) . '/wp-config.php' );
512
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'wp-config.php' ) );
513
  }
514
  }
515
- if ( is_readable( $abs_path . '.htaccess' ) && empty( $job_object->job[ 'backuproot' ] ) ) {
516
- $job_object->additional_files_to_backup[ ] = $abs_path . '.htaccess';
517
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), '.htaccess' ) );
518
  }
519
- if ( is_readable( $abs_path . 'nginx.conf' ) && empty( $job_object->job[ 'backuproot' ] ) ) {
520
- $job_object->additional_files_to_backup[ ] = $abs_path . 'nginx.conf';
521
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'nginx.conf' ) );
522
  }
523
- if ( is_readable( $abs_path . '.htpasswd' ) && empty( $job_object->job[ 'backuproot' ] ) ) {
524
- $job_object->additional_files_to_backup[ ] = $abs_path . '.htpasswd';
525
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), '.htpasswd' ) );
526
  }
527
- if ( is_readable( $abs_path . 'robots.txt' ) && empty( $job_object->job[ 'backuproot' ] ) ) {
528
- $job_object->additional_files_to_backup[ ] = $abs_path . 'robots.txt';
529
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'robots.txt' ) );
530
  }
531
- if ( is_readable( $abs_path . 'favicon.ico' ) && empty( $job_object->job[ 'backuproot' ] ) ) {
532
- $job_object->additional_files_to_backup[ ] = $abs_path . 'favicon.ico';
533
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'favicon.ico' ) );
534
  }
535
  }
536
 
537
- if ( $job_object->count_folder == 0 && count( $job_object->additional_files_to_backup ) == 0 )
538
  $job_object->log( __( 'No files/folder for the backup.', 'backwpup' ), E_USER_WARNING );
539
- elseif ( $job_object->count_folder > 1 )
540
  $job_object->log( sprintf( __( '%1$d folders to backup.', 'backwpup' ), $job_object->count_folder ) );
 
541
 
542
  $job_object->substeps_done = 8;
543
 
544
- return TRUE;
545
  }
546
 
547
  /**
@@ -550,42 +545,51 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
550
  *
551
  * @param $job_object BackWPup_Job
552
  * @param string $folder
553
- * @param array $excludedirs
 
554
  *
555
  * @return bool
 
556
  */
557
- private function get_folder_list( &$job_object, $folder, $excludedirs = array() ) {
558
 
559
  $folder = trailingslashit( $folder );
560
 
561
  if ( $dir = opendir( $folder ) ) {
562
  //add folder to folder list
563
- $this->folers_to_backup[] = $folder;
564
  //scan folder
565
- while ( FALSE !== ( $file = readdir( $dir ) ) ) {
566
- if ( in_array( $file, array( '.', '..' ), true ) )
567
  continue;
 
568
  foreach ( $job_object->exclude_from_backup as $exclusion ) { //exclude files
569
  $exclusion = trim( $exclusion );
570
- if ( FALSE !== stripos( $folder . $file, trim( $exclusion ) ) && ! empty( $exclusion ) )
571
  continue 2;
 
572
  }
573
  if ( is_dir( $folder . $file ) ) {
574
- if ( in_array( trailingslashit( $folder . $file ), $excludedirs, true ) )
575
  continue;
576
- if ( @file_exists( trailingslashit( $folder . $file ) . '.donotbackup' ) )
 
577
  continue;
 
578
  if ( ! is_readable( $folder . $file ) ) {
579
  $job_object->log( sprintf( __( 'Folder "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
580
  continue;
581
  }
582
- $this->get_folder_list( $job_object, trailingslashit( $folder . $file ), $excludedirs );
 
 
 
583
  }
584
  }
585
  closedir( $dir );
586
  }
587
 
588
- return TRUE;
589
  }
590
 
591
 
@@ -595,24 +599,25 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
595
  *
596
  * @param $folder string folder to check for excludes
597
  *
 
 
598
  * @return array of folder to exclude
599
  */
600
- private function get_exclude_dirs( $folder ) {
601
 
602
- $folder = trailingslashit( str_replace( '\\', '/', realpath( $folder ) ) );
603
- $excludedir = array();
604
 
605
- if ( FALSE !== strpos( trailingslashit( str_replace( '\\', '/', realpath( WP_CONTENT_DIR ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( WP_CONTENT_DIR ) ) ) != $folder ) {
606
- $excludedir[ ] = trailingslashit( str_replace( '\\', '/', realpath( WP_CONTENT_DIR ) ) );
607
  }
608
- if ( FALSE !== strpos( trailingslashit( str_replace( '\\', '/', realpath( WP_PLUGIN_DIR ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( WP_PLUGIN_DIR ) ) ) != $folder ) {
609
- $excludedir[ ] = trailingslashit( str_replace( '\\', '/', realpath( WP_PLUGIN_DIR ) ) );
610
  }
611
- if ( FALSE !== strpos( trailingslashit( str_replace( '\\', '/', realpath( get_theme_root() ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( get_theme_root() ) ) ) != $folder ) {
612
- $excludedir[ ] = trailingslashit( str_replace( '\\', '/', realpath( get_theme_root() ) ) );
613
  }
614
- if ( FALSE !== strpos( trailingslashit( str_replace( '\\', '/', realpath( BackWPup_File::get_upload_dir() ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( BackWPup_File::get_upload_dir() ) ) ) != $folder ) {
615
- $excludedir[ ] = trailingslashit( str_replace( '\\', '/', realpath( BackWPup_File::get_upload_dir() ) ) );
616
  }
617
 
618
  return array_unique( $excludedir );
4
  */
5
  class BackWPup_JobType_File extends BackWPup_JobTypes {
6
 
 
 
7
  /**
8
  *
9
  */
12
  $this->info[ 'ID' ] = 'FILE';
13
  $this->info[ 'name' ] = __( 'Files', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'File backup', 'backwpup' );
15
+ $this->info[ 'URI' ] = __( 'http://backwpup.com', 'backwpup' );
16
+ $this->info[ 'author' ] = 'Inpsyde GmbH';
17
+ $this->info[ 'authorURI' ] = __( 'http://inpsyde.com', 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
380
  */
381
  public function job_run( BackWPup_Job $job_object ) {
382
 
383
+ if ( $job_object->steps_data[ $job_object->step_working ]['SAVE_STEP_TRY'] != $job_object->steps_data[ $job_object->step_working ][ 'STEP_TRY' ] ) {
384
+ $job_object->log( sprintf( __( '%d. Trying to make a list of folders to back up&#160;&hellip;', 'backwpup' ), $job_object->steps_data[ $job_object->step_working ]['STEP_TRY'] ) );
385
+ }
386
+ $job_object->substeps_todo = 8;
387
+
388
  $abs_path = realpath( ABSPATH );
389
+ if ( $job_object->job['backupabsfolderup'] ) {
390
  $abs_path = dirname( $abs_path );
391
  }
392
  $abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
393
 
394
+ $job_object->temp['folders_to_backup'] = array();
395
+ $folders_already_in = $job_object->get_folders_to_backup();
 
 
396
 
397
  //Folder lists for blog folders
398
+ if ( $job_object->substeps_done === 0 ) {
399
+ if ( $abs_path && ! empty( $job_object->job['backuproot'] ) ) {
400
  $abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
401
+ $excludes = $this->get_exclude_dirs( $abs_path, $folders_already_in );
402
+ foreach ( $job_object->job['backuprootexcludedirs'] as $folder ) {
403
+ $excludes[] = trailingslashit( $abs_path . $folder );
404
+ }
405
  $this->get_folder_list( $job_object, $abs_path, $excludes );
 
 
406
  }
407
  $job_object->substeps_done = 1;
408
  $job_object->update_working_data();
411
 
412
  if ( $job_object->substeps_done === 1 ) {
413
  $wp_content_dir = realpath( WP_CONTENT_DIR );
414
+ if ( $wp_content_dir && ! empty( $job_object->job['backupcontent'] ) ) {
415
  $wp_content_dir = trailingslashit( str_replace( '\\', '/', $wp_content_dir ) );
416
+ $excludes = $this->get_exclude_dirs( $wp_content_dir, $folders_already_in );
417
+ foreach ( $job_object->job['backupcontentexcludedirs'] as $folder ) {
418
  $excludes[] = trailingslashit( $wp_content_dir . $folder );
419
+ }
420
  $this->get_folder_list( $job_object, $wp_content_dir, $excludes );
 
 
421
  }
422
  $job_object->substeps_done = 2;
423
  $job_object->update_working_data();
424
  $job_object->do_restart_time();
425
  }
426
 
427
+ if ( $job_object->substeps_done === 2 ) {
428
  $wp_plugin_dir = realpath( WP_PLUGIN_DIR );
429
+ if ( $wp_plugin_dir && ! empty( $job_object->job['backupplugins'] ) ) {
430
  $wp_plugin_dir = trailingslashit( str_replace( '\\', '/', $wp_plugin_dir ) );
431
+ $excludes = $this->get_exclude_dirs( $wp_plugin_dir, $folders_already_in );
432
+ foreach ( $job_object->job['backuppluginsexcludedirs'] as $folder ) {
433
  $excludes[] = trailingslashit( $wp_plugin_dir . $folder );
434
+ }
435
  $this->get_folder_list( $job_object, $wp_plugin_dir, $excludes );
 
 
436
  }
437
  $job_object->substeps_done = 3;
438
  $job_object->update_working_data();
439
  $job_object->do_restart_time();
440
  }
441
 
442
+ if ( $job_object->substeps_done === 3 ) {
443
  $theme_root = realpath( get_theme_root() );
444
+ if ( $theme_root && ! empty( $job_object->job['backupthemes'] ) ) {
445
  $theme_root = trailingslashit( str_replace( '\\', '/', $theme_root ) );
446
+ $excludes = $this->get_exclude_dirs( $theme_root, $folders_already_in );
447
+ foreach ( $job_object->job['backupthemesexcludedirs'] as $folder ) {
448
  $excludes[] = trailingslashit( $theme_root . $folder );
449
+ }
450
  $this->get_folder_list( $job_object, $theme_root, $excludes );
 
 
451
  }
452
  $job_object->substeps_done = 4;
453
  $job_object->update_working_data();
454
  $job_object->do_restart_time();
455
  }
456
 
457
+ if ( $job_object->substeps_done === 4 ) {
458
  $upload_dir = realpath( BackWPup_File::get_upload_dir() );
459
+ if ( $upload_dir && ! empty( $job_object->job['backupuploads'] ) ) {
460
  $upload_dir = trailingslashit( str_replace( '\\', '/', $upload_dir ) );
461
+ $excludes = $this->get_exclude_dirs( $upload_dir, $folders_already_in );
462
+ foreach ( $job_object->job['backupuploadsexcludedirs'] as $folder ) {
463
  $excludes[] = trailingslashit( $upload_dir . $folder );
464
+ }
465
  $this->get_folder_list( $job_object, $upload_dir, $excludes );
 
 
466
  }
467
  $job_object->substeps_done = 5;
468
  $job_object->update_working_data();
469
  $job_object->do_restart_time();
470
  }
471
 
472
+ if ( $job_object->substeps_done === 5 ) {
473
  //include dirs
474
+ if ( $job_object->job['dirinclude'] ) {
475
+ $dirinclude = explode( ',', $job_object->job['dirinclude'] );
476
  $dirinclude = array_unique( $dirinclude );
477
  //Crate file list for includes
478
  foreach ( $dirinclude as $dirincludevalue ) {
479
+ if ( is_dir( $dirincludevalue ) ) {
480
  $this->get_folder_list( $job_object, $dirincludevalue );
481
+ }
482
  }
 
 
483
  }
484
  $job_object->substeps_done = 6;
485
  $job_object->update_working_data();
486
  $job_object->do_restart_time();
487
  }
488
 
489
+ if ( $job_object->substeps_done === 6 ) {
490
  //clean up folder list
491
  $folders = $job_object->get_folders_to_backup();
492
+ $job_object->add_folders_to_backup( $folders, true );
493
+ $job_object->substeps_done = 7;
494
  $job_object->update_working_data();
495
  $job_object->do_restart_time();
 
496
  }
497
 
498
  //add extra files if selected
499
+ if ( ! empty( $job_object->job['backupspecialfiles'] ) ) {
500
  if ( is_readable( ABSPATH . 'wp-config.php' ) ) {
501
+ $job_object->additional_files_to_backup[] = str_replace( '\\', '/', ABSPATH . 'wp-config.php' );
502
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'wp-config.php' ) );
503
+ } elseif ( BackWPup_File::is_in_open_basedir( dirname( ABSPATH ) . '/wp-config.php' ) ) {
 
504
  if ( is_readable( dirname( ABSPATH ) . '/wp-config.php' ) && ! is_readable( dirname( ABSPATH ) . '/wp-settings.php' ) ) {
505
+ $job_object->additional_files_to_backup[] = str_replace( '\\', '/', dirname( ABSPATH ) . '/wp-config.php' );
506
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'wp-config.php' ) );
507
  }
508
  }
509
+ if ( is_readable( $abs_path . '.htaccess' ) && empty( $job_object->job['backuproot'] ) ) {
510
+ $job_object->additional_files_to_backup[] = $abs_path . '.htaccess';
511
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), '.htaccess' ) );
512
  }
513
+ if ( is_readable( $abs_path . 'nginx.conf' ) && empty( $job_object->job['backuproot'] ) ) {
514
+ $job_object->additional_files_to_backup[] = $abs_path . 'nginx.conf';
515
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'nginx.conf' ) );
516
  }
517
+ if ( is_readable( $abs_path . '.htpasswd' ) && empty( $job_object->job['backuproot'] ) ) {
518
+ $job_object->additional_files_to_backup[] = $abs_path . '.htpasswd';
519
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), '.htpasswd' ) );
520
  }
521
+ if ( is_readable( $abs_path . 'robots.txt' ) && empty( $job_object->job['backuproot'] ) ) {
522
+ $job_object->additional_files_to_backup[] = $abs_path . 'robots.txt';
523
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'robots.txt' ) );
524
  }
525
+ if ( is_readable( $abs_path . 'favicon.ico' ) && empty( $job_object->job['backuproot'] ) ) {
526
+ $job_object->additional_files_to_backup[] = $abs_path . 'favicon.ico';
527
  $job_object->log( sprintf( __( 'Added "%s" to backup file list', 'backwpup' ), 'favicon.ico' ) );
528
  }
529
  }
530
 
531
+ if ( $job_object->count_folder === 0 && count( $job_object->additional_files_to_backup ) === 0 ) {
532
  $job_object->log( __( 'No files/folder for the backup.', 'backwpup' ), E_USER_WARNING );
533
+ } elseif ( $job_object->count_folder > 1 ) {
534
  $job_object->log( sprintf( __( '%1$d folders to backup.', 'backwpup' ), $job_object->count_folder ) );
535
+ }
536
 
537
  $job_object->substeps_done = 8;
538
 
539
+ return true;
540
  }
541
 
542
  /**
545
  *
546
  * @param $job_object BackWPup_Job
547
  * @param string $folder
548
+ * @param array $excludedirs
549
+ * @param bool $first
550
  *
551
  * @return bool
552
+ *
553
  */
554
+ private function get_folder_list( &$job_object, $folder, $excludedirs = array(), $first = true ) {
555
 
556
  $folder = trailingslashit( $folder );
557
 
558
  if ( $dir = opendir( $folder ) ) {
559
  //add folder to folder list
560
+ $job_object->add_folders_to_backup( $folder );
561
  //scan folder
562
+ while ( false !== ( $file = readdir( $dir ) ) ) {
563
+ if ( in_array( $file, array( '.', '..' ), true ) ) {
564
  continue;
565
+ }
566
  foreach ( $job_object->exclude_from_backup as $exclusion ) { //exclude files
567
  $exclusion = trim( $exclusion );
568
+ if ( false !== stripos( $folder . $file, trim( $exclusion ) ) && ! empty( $exclusion ) ) {
569
  continue 2;
570
+ }
571
  }
572
  if ( is_dir( $folder . $file ) ) {
573
+ if ( in_array( trailingslashit( $folder . $file ), $excludedirs, true ) ) {
574
  continue;
575
+ }
576
+ if ( file_exists( trailingslashit( $folder . $file ) . '.donotbackup' ) ) {
577
  continue;
578
+ }
579
  if ( ! is_readable( $folder . $file ) ) {
580
  $job_object->log( sprintf( __( 'Folder "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
581
  continue;
582
  }
583
+ $this->get_folder_list( $job_object, trailingslashit( $folder . $file ), $excludedirs, false );
584
+ }
585
+ if ( $first ) {
586
+ $job_object->do_restart_time();
587
  }
588
  }
589
  closedir( $dir );
590
  }
591
 
592
+ return true;
593
  }
594
 
595
 
599
  *
600
  * @param $folder string folder to check for excludes
601
  *
602
+ * @param array $excludedir
603
+ *
604
  * @return array of folder to exclude
605
  */
606
+ private function get_exclude_dirs( $folder, $excludedir = array() ) {
607
 
608
+ $folder = trailingslashit( str_replace( '\\', '/', realpath( $folder ) ) );
 
609
 
610
+ if ( false !== strpos( trailingslashit( str_replace( '\\', '/', realpath( WP_CONTENT_DIR ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( WP_CONTENT_DIR ) ) ) != $folder ) {
611
+ $excludedir[] = trailingslashit( str_replace( '\\', '/', realpath( WP_CONTENT_DIR ) ) );
612
  }
613
+ if ( false !== strpos( trailingslashit( str_replace( '\\', '/', realpath( WP_PLUGIN_DIR ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( WP_PLUGIN_DIR ) ) ) != $folder ) {
614
+ $excludedir[] = trailingslashit( str_replace( '\\', '/', realpath( WP_PLUGIN_DIR ) ) );
615
  }
616
+ if ( false !== strpos( trailingslashit( str_replace( '\\', '/', realpath( get_theme_root() ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( get_theme_root() ) ) ) != $folder ) {
617
+ $excludedir[] = trailingslashit( str_replace( '\\', '/', realpath( get_theme_root() ) ) );
618
  }
619
+ if ( false !== strpos( trailingslashit( str_replace( '\\', '/', realpath( BackWPup_File::get_upload_dir() ) ) ), $folder ) && trailingslashit( str_replace( '\\', '/', realpath( BackWPup_File::get_upload_dir() ) ) ) != $folder ) {
620
+ $excludedir[] = trailingslashit( str_replace( '\\', '/', realpath( BackWPup_File::get_upload_dir() ) ) );
621
  }
622
 
623
  return array_unique( $excludedir );
inc/class-jobtype-wpexp.php CHANGED
@@ -12,9 +12,9 @@ class BackWPup_JobType_WPEXP extends BackWPup_JobTypes {
12
  $this->info[ 'ID' ] = 'WPEXP';
13
  $this->info[ 'name' ] = __( 'XML export', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'WordPress XML export', 'backwpup' );
15
- $this->info[ 'URI' ] = translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' );
16
- $this->info[ 'author' ] = BackWPup::get_plugin_data( 'Author' );
17
- $this->info[ 'authorURI' ] = translate( BackWPup::get_plugin_data( 'AuthorURI' ), 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
@@ -31,7 +31,7 @@ class BackWPup_JobType_WPEXP extends BackWPup_JobTypes {
31
  * @return array
32
  */
33
  public function option_defaults() {
34
- return array( 'wpexportcontent' => 'all', 'wpexportfilecompression' => '', 'wpexportfile' => sanitize_file_name( get_bloginfo( 'name' ) ) . '.wordpress.%Y-%m-%d' );
35
  }
36
 
37
 
12
  $this->info[ 'ID' ] = 'WPEXP';
13
  $this->info[ 'name' ] = __( 'XML export', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'WordPress XML export', 'backwpup' );
15
+ $this->info[ 'URI' ] = __( 'http://backwpup.com', 'backwpup' );
16
+ $this->info[ 'author' ] = 'Inpsyde GmbH';
17
+ $this->info[ 'authorURI' ] = __( 'http://inpsyde.com', 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
31
  * @return array
32
  */
33
  public function option_defaults() {
34
+ return array( 'wpexportcontent' => 'all', 'wpexportfilecompression' => '', 'wpexportfile' => sanitize_text_field( get_bloginfo( 'name' ) ) . '.wordpress.%Y-%m-%d' );
35
  }
36
 
37
 
inc/class-jobtype-wpplugin.php CHANGED
@@ -12,9 +12,9 @@ class BackWPup_JobType_WPPlugin extends BackWPup_JobTypes {
12
  $this->info[ 'ID' ] = 'WPPLUGIN';
13
  $this->info[ 'name' ] = __( 'Plugins', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'Installed plugins list', 'backwpup' );
15
- $this->info[ 'URI' ] = translate( BackWPup::get_plugin_data( 'PluginURI' ), 'backwpup' );
16
- $this->info[ 'author' ] = BackWPup::get_plugin_data( 'Author' );
17
- $this->info[ 'authorURI' ] = translate( BackWPup::get_plugin_data( 'AuthorURI' ), 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
@@ -79,7 +79,7 @@ class BackWPup_JobType_WPPlugin extends BackWPup_JobTypes {
79
  */
80
  public function edit_form_post_save( $id ) {
81
 
82
- BackWPup_Option::update( $id, 'pluginlistfile', sanitize_file_name( $_POST[ 'pluginlistfile' ] ) );
83
  if ( $_POST[ 'pluginlistfilecompression' ] === '' || $_POST[ 'pluginlistfilecompression' ] === '.gz' || $_POST[ 'pluginlistfilecompression' ] === '.bz2' ) {
84
  BackWPup_Option::update( $id, 'pluginlistfilecompression', $_POST[ 'pluginlistfilecompression' ] );
85
  }
@@ -109,7 +109,7 @@ class BackWPup_JobType_WPPlugin extends BackWPup_JobTypes {
109
  //open file
110
  $header = "------------------------------------------------------------" . PHP_EOL;
111
  $header .= " Plugin list generated with BackWPup version: " . BackWPup::get_plugin_data( 'Version' ) . PHP_EOL;
112
- $header .= " " . translate( BackWPup::get_plugin_data( 'pluginuri' ), 'backwpup' ) . PHP_EOL;
113
  $header .= " Blog Name: " . get_bloginfo( 'name' ) . PHP_EOL;
114
  $header .= " Blog URL: " . get_bloginfo( 'url' ) . PHP_EOL;
115
  $header .= " Generated on: " . date( 'Y-m-d H:i.s', current_time( 'timestamp' ) ) . PHP_EOL;
12
  $this->info[ 'ID' ] = 'WPPLUGIN';
13
  $this->info[ 'name' ] = __( 'Plugins', 'backwpup' );
14
  $this->info[ 'description' ] = __( 'Installed plugins list', 'backwpup' );
15
+ $this->info[ 'URI' ] = __( 'http://backwpup.com', 'backwpup' );
16
+ $this->info[ 'author' ] = 'Inpsyde GmbH';
17
+ $this->info[ 'authorURI' ] = __( 'http://inpsyde.com', 'backwpup' );
18
  $this->info[ 'version' ] = BackWPup::get_plugin_data( 'Version' );
19
 
20
  }
79
  */
80
  public function edit_form_post_save( $id ) {
81
 
82
+ BackWPup_Option::update( $id, 'pluginlistfile', sanitize_text_field( $_POST[ 'pluginlistfile' ] ) );
83
  if ( $_POST[ 'pluginlistfilecompression' ] === '' || $_POST[ 'pluginlistfilecompression' ] === '.gz' || $_POST[ 'pluginlistfilecompression' ] === '.bz2' ) {
84
  BackWPup_Option::update( $id, 'pluginlistfilecompression', $_POST[ 'pluginlistfilecompression' ] );
85
  }
109
  //open file
110
  $header = "------------------------------------------------------------" . PHP_EOL;
111
  $header .= " Plugin list generated with BackWPup version: " . BackWPup::get_plugin_data( 'Version' ) . PHP_EOL;
112
+ $header .= " http://backwpup.com" . PHP_EOL;
113
  $header .= " Blog Name: " . get_bloginfo( 'name' ) . PHP_EOL;
114
  $header .= " Blog URL: " . get_bloginfo( 'url' ) . PHP_EOL;
115
  $header .= " Generated on: " . date( 'Y-m-d H:i.s', current_time( 'timestamp' ) ) . PHP_EOL;
inc/class-mysqldump.php CHANGED
@@ -151,27 +151,29 @@ class BackWPup_MySQLDump {
151
  $GLOBALS[ 'wpdb' ]->num_queries ++;
152
  if ( $this->mysqli->error ) {
153
  throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW TABLE STATUS FROM `" .$this->dbname . "`" ) );
 
 
 
 
 
154
  }
155
- while ( $tablestatus = $res->fetch_assoc() ) {
156
- $this->table_status[ $tablestatus[ 'Name' ] ] = $tablestatus;
157
- }
158
- $res->close();
159
 
160
  //get table names and types from Database
161
  $res = $this->mysqli->query( 'SHOW FULL TABLES FROM `' . $this->dbname . '`' );
162
  $GLOBALS[ 'wpdb' ]->num_queries ++;
163
  if ( $this->mysqli->error ) {
164
  throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, 'SHOW FULL TABLES FROM `' . $this->dbname . '`' ) );
165
- }
166
- while ( $table = $res->fetch_array( MYSQLI_NUM ) ) {
167
- $this->table_types[ $table[ 0 ] ] = $table[ 1 ];
168
- $this->tables_to_dump[] = $table[ 0 ];
169
- if ( $table[ 1 ] == 'VIEW' ) {
170
- $this->views_to_dump[] = $table[ 0 ];
171
- $this->table_status[ $table[ 0 ] ][ 'Rows' ] = 0;
 
172
  }
 
173
  }
174
- $res->close();
175
 
176
  }
177
 
@@ -212,7 +214,7 @@ class BackWPup_MySQLDump {
212
  //For SQL always use \n as MySQL wants this on all platforms.
213
  $dbdumpheader = "-- ---------------------------------------------------------\n";
214
  $dbdumpheader .= "-- Backup with BackWPup ver.: " . BackWPup::get_plugin_data( 'Version' ) . "\n";
215
- $dbdumpheader .= "-- https://marketpress.de/product/backwpup-pro/\n";
216
  if ( $wp_info ) {
217
  $dbdumpheader .= "-- Blog Name: " . get_bloginfo( 'name' ) . "\n";
218
  $dbdumpheader .= "-- Blog URL: " . trailingslashit( get_bloginfo( 'url' ) ) . "\n";
@@ -260,20 +262,21 @@ class BackWPup_MySQLDump {
260
  if ( $this->dbname != $function_status[ 'Db' ] ) {
261
  continue;
262
  }
263
- $create = "\n--\n-- Function structure for " . $function_status[ 'Name' ] . "\n--\n\n";
264
- $create .= "DROP FUNCTION IF EXISTS `" . $function_status[ 'Name' ] . "`;\n";
265
- $create .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
266
- $create .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
267
  $res2 = $this->mysqli->query( "SHOW CREATE FUNCTION `" . $function_status[ 'Db' ] . "`.`" . $function_status[ 'Name' ] . "`" );
268
  $GLOBALS[ 'wpdb' ]->num_queries ++;
269
  if ( $this->mysqli->error ) {
270
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE FUNCTION `" . $function_status[ 'Db' ] . "`.`" . $function_status[ 'Name' ] . "`" ), E_USER_WARNING );
 
 
 
 
 
 
 
 
 
 
271
  }
272
- $create_function = $res2->fetch_assoc();
273
- $res2->close();
274
- $create .= $create_function[ 'Create Function' ] . ";\n";
275
- $create .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
276
- $this->write( $create );
277
  }
278
  $res->close();
279
  }
@@ -288,20 +291,21 @@ class BackWPup_MySQLDump {
288
  if ( $this->dbname != $procedure_status[ 'Db' ] ) {
289
  continue;
290
  }
291
- $create = "\n--\n-- Procedure structure for " . $procedure_status[ 'Name' ] . "\n--\n\n";
292
- $create .= "DROP PROCEDURE IF EXISTS `" . $procedure_status[ 'Name' ] . "`;\n";
293
- $create .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
294
- $create .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
295
  $res2 = $this->mysqli->query( "SHOW CREATE PROCEDURE `" . $procedure_status[ 'Db' ] . "`.`" . $procedure_status[ 'Name' ] . "`" );
296
  $GLOBALS[ 'wpdb' ]->num_queries ++;
297
  if ( $this->mysqli->error ) {
298
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE PROCEDURE `" . $procedure_status[ 'Db' ] . "`.`" . $procedure_status[ 'Name' ] . "`" ), E_USER_WARNING );
 
 
 
 
 
 
 
 
 
 
299
  }
300
- $create_procedure = $res2->fetch_assoc();
301
- $res2->close();
302
- $create .= $create_procedure[ 'Create Procedure' ] . ";\n";
303
- $create .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
304
- $this->write( $create );
305
  }
306
  $res->close();
307
  }
@@ -313,19 +317,20 @@ class BackWPup_MySQLDump {
313
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW TRIGGERS" ), E_USER_WARNING );
314
  } else {
315
  while ( $triggers = $res->fetch_assoc() ) {
316
- $create = "\n--\n-- Trigger structure for " . $triggers[ 'Trigger' ] . "\n--\n\n";
317
- $create .= "DROP TRIGGER IF EXISTS `" . $triggers[ 'Trigger' ] . "`;\n";
318
- $create .= "DELIMITER //\n";
319
  $res2 = $this->mysqli->query( "SHOW CREATE TRIGGER `" . $this->dbname . "`.`" . $triggers[ 'Trigger' ] . "`" );
320
  $GLOBALS[ 'wpdb' ]->num_queries ++;
321
  if ( $this->mysqli->error ) {
322
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE TRIGGER `" . $this->dbname . "`.`" . $triggers[ 'Trigger' ] . "`" ), E_USER_WARNING );
 
 
 
 
 
 
 
 
 
323
  }
324
- $create_trigger = $res2->fetch_assoc();
325
- $res2->close();
326
- $create .= $create_trigger[ 'SQL Original Statement' ] . ";\n";
327
- $create .= "//\nDELIMITER ;\n";
328
- $this->write( $create );
329
  }
330
  $res->close();
331
  }
@@ -354,29 +359,32 @@ class BackWPup_MySQLDump {
354
  public function dump_table_head( $table ) {
355
 
356
  //dump View
357
- if ( $this->table_types[ $table ] == 'VIEW' ) {
358
- $tablecreate = "\n--\n-- Temporary table structure for view `" . $table . "`\n--\n\n";
359
- $tablecreate .= "DROP TABLE IF EXISTS `" . $table . "`;\n";
360
- $tablecreate .= "/*!50001 DROP VIEW IF EXISTS `" . $table . "`*/;\n";
361
- $tablecreate .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
362
- $tablecreate .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
363
- $tablecreate .= "CREATE TABLE `" . $table . "` (\n";
364
  //Dump the view table structure
 
365
  $res = $this->mysqli->query( "SELECT * FROM `" . $table . "` LIMIT 1" );
366
  $GLOBALS[ 'wpdb' ]->num_queries ++;
367
  if ( $this->mysqli->error ) {
368
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SELECT * FROM `" . $table . "` LIMIT 1" ), E_USER_WARNING );
 
 
 
369
  }
370
- $fields = $res->fetch_fields();
371
- $res->close();
372
- foreach( $fields as $field ) {
373
- $tablecreate .= " `". $field->orgname . "` tinyint NOT NULL,\n";
 
 
 
 
 
 
 
 
 
 
374
  }
375
- $tablecreate = substr( $tablecreate, 0, -2 ) ."\n";
376
- $tablecreate .= ");\n";
377
- $tablecreate .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
378
- $this->write( $tablecreate );
379
-
380
  return 0;
381
  }
382
 
@@ -388,24 +396,28 @@ class BackWPup_MySQLDump {
388
  //Dump the table structure
389
  $res = $this->mysqli->query( "SHOW CREATE TABLE `" . $table . "`" );
390
  $GLOBALS[ 'wpdb' ]->num_queries ++;
391
- if ( $this->mysqli->error )
392
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE TABLE `" . $table . "`" ), E_USER_WARNING );
393
- $createtable = $res->fetch_assoc();
394
- $res->close();
395
- $tablecreate .= $createtable[ 'Create Table' ] . ";\n";
396
- $tablecreate .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
397
- $this->write( $tablecreate );
 
398
 
399
- if ( $this->table_status[ $table ][ 'Engine' ] !== 'MyISAM' ) {
400
- $this->table_status[ $table ][ 'Rows' ] = '~' . $this->table_status[ $table ][ 'Rows' ];
401
- }
402
 
403
- if ( $this->table_status[ $table ][ 'Rows' ] !== 0 ) {
404
- //Dump Table data
405
- $this->write( "\n--\n-- Backup data for table `" . $table . "`\n--\n\nLOCK TABLES `" . $table . "` WRITE;\n/*!40000 ALTER TABLE `" . $table . "` DISABLE KEYS */;\n" );
 
 
 
406
  }
407
 
408
- return $this->table_status[ $table ][ 'Rows' ];
409
  }
410
 
411
 
@@ -418,22 +430,23 @@ class BackWPup_MySQLDump {
418
  */
419
  public function dump_view_table_head( $view ) {
420
 
421
- $tablecreate = "\n--\n-- View structure for `" . $view . "`\n--\n\n";
422
- $tablecreate .= "DROP TABLE IF EXISTS `" . $view . "`;\n";
423
- $tablecreate .= "DROP VIEW IF EXISTS `" . $view . "`;\n";
424
- $tablecreate .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
425
- $tablecreate .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
426
  //Dump the view structure
427
  $res = $this->mysqli->query( "SHOW CREATE VIEW `" . $view . "`" );
428
  $GLOBALS[ 'wpdb' ]->num_queries ++;
429
  if ( $this->mysqli->error ) {
430
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE VIEW `" . $view . "`" ), E_USER_WARNING );
 
 
 
 
 
 
 
 
 
 
 
431
  }
432
- $createview = $res->fetch_assoc();
433
- $res->close();
434
- $tablecreate .= $createview[ 'Create View' ] . ";\n";
435
- $tablecreate .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
436
- $this->write( $tablecreate );
437
 
438
  }
439
 
@@ -485,6 +498,7 @@ class BackWPup_MySQLDump {
485
  $GLOBALS[ 'wpdb' ]->num_queries ++;
486
  if ( $this->mysqli->error ) {
487
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SELECT * FROM `" . $table . "`" ), E_USER_WARNING );
 
488
  }
489
 
490
  $fieldsarray = array();
@@ -496,7 +510,6 @@ class BackWPup_MySQLDump {
496
  $fieldinfo[ $fieldsarray[ $i ] ] = $filed;
497
  $i ++;
498
  }
499
-
500
  $dump = '';
501
  while ( $data = $res->fetch_assoc() ) {
502
  $values = array();
151
  $GLOBALS[ 'wpdb' ]->num_queries ++;
152
  if ( $this->mysqli->error ) {
153
  throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW TABLE STATUS FROM `" .$this->dbname . "`" ) );
154
+ } else {
155
+ while ( $tablestatus = $res->fetch_assoc() ) {
156
+ $this->table_status[ $tablestatus[ 'Name' ] ] = $tablestatus;
157
+ }
158
+ $res->close();
159
  }
 
 
 
 
160
 
161
  //get table names and types from Database
162
  $res = $this->mysqli->query( 'SHOW FULL TABLES FROM `' . $this->dbname . '`' );
163
  $GLOBALS[ 'wpdb' ]->num_queries ++;
164
  if ( $this->mysqli->error ) {
165
  throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, 'SHOW FULL TABLES FROM `' . $this->dbname . '`' ) );
166
+ } else {
167
+ while ( $table = $res->fetch_array( MYSQLI_NUM ) ) {
168
+ $this->table_types[ $table[ 0 ] ] = $table[ 1 ];
169
+ $this->tables_to_dump[] = $table[ 0 ];
170
+ if ( $table[ 1 ] === 'VIEW' ) {
171
+ $this->views_to_dump[] = $table[ 0 ];
172
+ $this->table_status[ $table[ 0 ] ][ 'Rows' ] = 0;
173
+ }
174
  }
175
+ $res->close();
176
  }
 
177
 
178
  }
179
 
214
  //For SQL always use \n as MySQL wants this on all platforms.
215
  $dbdumpheader = "-- ---------------------------------------------------------\n";
216
  $dbdumpheader .= "-- Backup with BackWPup ver.: " . BackWPup::get_plugin_data( 'Version' ) . "\n";
217
+ $dbdumpheader .= "-- http://backwpup.com/\n";
218
  if ( $wp_info ) {
219
  $dbdumpheader .= "-- Blog Name: " . get_bloginfo( 'name' ) . "\n";
220
  $dbdumpheader .= "-- Blog URL: " . trailingslashit( get_bloginfo( 'url' ) ) . "\n";
262
  if ( $this->dbname != $function_status[ 'Db' ] ) {
263
  continue;
264
  }
 
 
 
 
265
  $res2 = $this->mysqli->query( "SHOW CREATE FUNCTION `" . $function_status[ 'Db' ] . "`.`" . $function_status[ 'Name' ] . "`" );
266
  $GLOBALS[ 'wpdb' ]->num_queries ++;
267
  if ( $this->mysqli->error ) {
268
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE FUNCTION `" . $function_status[ 'Db' ] . "`.`" . $function_status[ 'Name' ] . "`" ), E_USER_WARNING );
269
+ } else {
270
+ $create_function = $res2->fetch_assoc();
271
+ $res2->close();
272
+ $create = "\n--\n-- Function structure for " . $function_status[ 'Name' ] . "\n--\n\n";
273
+ $create .= "DROP FUNCTION IF EXISTS `" . $function_status[ 'Name' ] . "`;\n";
274
+ $create .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
275
+ $create .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
276
+ $create .= $create_function[ 'Create Function' ] . ";\n";
277
+ $create .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
278
+ $this->write( $create );
279
  }
 
 
 
 
 
280
  }
281
  $res->close();
282
  }
291
  if ( $this->dbname != $procedure_status[ 'Db' ] ) {
292
  continue;
293
  }
 
 
 
 
294
  $res2 = $this->mysqli->query( "SHOW CREATE PROCEDURE `" . $procedure_status[ 'Db' ] . "`.`" . $procedure_status[ 'Name' ] . "`" );
295
  $GLOBALS[ 'wpdb' ]->num_queries ++;
296
  if ( $this->mysqli->error ) {
297
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE PROCEDURE `" . $procedure_status[ 'Db' ] . "`.`" . $procedure_status[ 'Name' ] . "`" ), E_USER_WARNING );
298
+ } else {
299
+ $create_procedure = $res2->fetch_assoc();
300
+ $res2->close();
301
+ $create = "\n--\n-- Procedure structure for " . $procedure_status[ 'Name' ] . "\n--\n\n";
302
+ $create .= "DROP PROCEDURE IF EXISTS `" . $procedure_status[ 'Name' ] . "`;\n";
303
+ $create .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
304
+ $create .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
305
+ $create .= $create_procedure[ 'Create Procedure' ] . ";\n";
306
+ $create .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
307
+ $this->write( $create );
308
  }
 
 
 
 
 
309
  }
310
  $res->close();
311
  }
317
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW TRIGGERS" ), E_USER_WARNING );
318
  } else {
319
  while ( $triggers = $res->fetch_assoc() ) {
 
 
 
320
  $res2 = $this->mysqli->query( "SHOW CREATE TRIGGER `" . $this->dbname . "`.`" . $triggers[ 'Trigger' ] . "`" );
321
  $GLOBALS[ 'wpdb' ]->num_queries ++;
322
  if ( $this->mysqli->error ) {
323
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE TRIGGER `" . $this->dbname . "`.`" . $triggers[ 'Trigger' ] . "`" ), E_USER_WARNING );
324
+ } else {
325
+ $create_trigger = $res2->fetch_assoc();
326
+ $res2->close();
327
+ $create = "\n--\n-- Trigger structure for " . $triggers[ 'Trigger' ] . "\n--\n\n";
328
+ $create .= "DROP TRIGGER IF EXISTS `" . $triggers[ 'Trigger' ] . "`;\n";
329
+ $create .= "DELIMITER //\n";
330
+ $create .= $create_trigger[ 'SQL Original Statement' ] . ";\n";
331
+ $create .= "//\nDELIMITER ;\n";
332
+ $this->write( $create );
333
  }
 
 
 
 
 
334
  }
335
  $res->close();
336
  }
359
  public function dump_table_head( $table ) {
360
 
361
  //dump View
362
+ if ( $this->table_types[ $table ] === 'VIEW' ) {
 
 
 
 
 
 
363
  //Dump the view table structure
364
+ $fields = array();
365
  $res = $this->mysqli->query( "SELECT * FROM `" . $table . "` LIMIT 1" );
366
  $GLOBALS[ 'wpdb' ]->num_queries ++;
367
  if ( $this->mysqli->error ) {
368
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SELECT * FROM `" . $table . "` LIMIT 1" ), E_USER_WARNING );
369
+ } else {
370
+ $fields = $res->fetch_fields();
371
+ $res->close();
372
  }
373
+ if ( $res ) {
374
+ $tablecreate = "\n--\n-- Temporary table structure for view `" . $table . "`\n--\n\n";
375
+ $tablecreate .= "DROP TABLE IF EXISTS `" . $table . "`;\n";
376
+ $tablecreate .= "/*!50001 DROP VIEW IF EXISTS `" . $table . "`*/;\n";
377
+ $tablecreate .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
378
+ $tablecreate .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
379
+ $tablecreate .= "CREATE TABLE `" . $table . "` (\n";
380
+ foreach( $fields as $field ) {
381
+ $tablecreate .= " `". $field->orgname . "` tinyint NOT NULL,\n";
382
+ }
383
+ $tablecreate = substr( $tablecreate, 0, -2 ) ."\n";
384
+ $tablecreate .= ");\n";
385
+ $tablecreate .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
386
+ $this->write( $tablecreate );
387
  }
 
 
 
 
 
388
  return 0;
389
  }
390
 
396
  //Dump the table structure
397
  $res = $this->mysqli->query( "SHOW CREATE TABLE `" . $table . "`" );
398
  $GLOBALS[ 'wpdb' ]->num_queries ++;
399
+ if ( $this->mysqli->error ) {
400
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE TABLE `" . $table . "`" ), E_USER_WARNING );
401
+ } else {
402
+ $createtable = $res->fetch_assoc();
403
+ $res->close();
404
+ $tablecreate .= $createtable[ 'Create Table' ] . ";\n";
405
+ $tablecreate .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
406
+ $this->write( $tablecreate );
407
 
408
+ if ( $this->table_status[ $table ][ 'Engine' ] !== 'MyISAM' ) {
409
+ $this->table_status[ $table ][ 'Rows' ] = '~' . $this->table_status[ $table ][ 'Rows' ];
410
+ }
411
 
412
+ if ( $this->table_status[ $table ][ 'Rows' ] !== 0 ) {
413
+ //Dump Table data
414
+ $this->write( "\n--\n-- Backup data for table `" . $table . "`\n--\n\nLOCK TABLES `" . $table . "` WRITE;\n/*!40000 ALTER TABLE `" . $table . "` DISABLE KEYS */;\n" );
415
+ }
416
+
417
+ return $this->table_status[ $table ][ 'Rows' ];
418
  }
419
 
420
+ return 0;
421
  }
422
 
423
 
430
  */
431
  public function dump_view_table_head( $view ) {
432
 
 
 
 
 
 
433
  //Dump the view structure
434
  $res = $this->mysqli->query( "SHOW CREATE VIEW `" . $view . "`" );
435
  $GLOBALS[ 'wpdb' ]->num_queries ++;
436
  if ( $this->mysqli->error ) {
437
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SHOW CREATE VIEW `" . $view . "`" ), E_USER_WARNING );
438
+ } else {
439
+ $createview = $res->fetch_assoc();
440
+ $res->close();
441
+ $tablecreate = "\n--\n-- View structure for `" . $view . "`\n--\n\n";
442
+ $tablecreate .= "DROP TABLE IF EXISTS `" . $view . "`;\n";
443
+ $tablecreate .= "DROP VIEW IF EXISTS `" . $view . "`;\n";
444
+ $tablecreate .= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
445
+ $tablecreate .= "/*!40101 SET character_set_client = '" . $this->mysqli->character_set_name() . "' */;\n";
446
+ $tablecreate .= $createview[ 'Create View' ] . ";\n";
447
+ $tablecreate .= "/*!40101 SET character_set_client = @saved_cs_client */;\n";
448
+ $this->write( $tablecreate );
449
  }
 
 
 
 
 
450
 
451
  }
452
 
498
  $GLOBALS[ 'wpdb' ]->num_queries ++;
499
  if ( $this->mysqli->error ) {
500
  trigger_error( sprintf( __( 'Database error %1$s for query %2$s', 'backwpup' ), $this->mysqli->error, "SELECT * FROM `" . $table . "`" ), E_USER_WARNING );
501
+ return 0;
502
  }
503
 
504
  $fieldsarray = array();
510
  $fieldinfo[ $fieldsarray[ $i ] ] = $filed;
511
  $i ++;
512
  }
 
513
  $dump = '';
514
  while ( $data = $res->fetch_assoc() ) {
515
  $values = array();
inc/class-option.php CHANGED
@@ -21,11 +21,7 @@ final class BackWPup_Option {
21
  add_site_option( 'backwpup_cfg_showfoldersize', 0 );
22
  add_site_option( 'backwpup_cfg_protectfolders', 1 );
23
  //job
24
- $max_execution_time = 0;
25
- if ( strstr( PHP_SAPI, 'cgi' ) ) {
26
- $max_execution_time = (int) ini_get( 'max_execution_time' );
27
- }
28
- add_site_option( 'backwpup_cfg_jobmaxexecutiontime', $max_execution_time );
29
  add_site_option( 'backwpup_cfg_jobstepretry', 3 );
30
  add_site_option( 'backwpup_cfg_jobrunauthkey', substr( md5( BackWPup::get_plugin_data( 'hash' ) ), 11, 8 ) );
31
  add_site_option( 'backwpup_cfg_loglevel', 'normal_translated' );
@@ -34,7 +30,7 @@ final class BackWPup_Option {
34
  //Logs
35
  add_site_option( 'backwpup_cfg_maxlogs', 30 );
36
  add_site_option( 'backwpup_cfg_gzlogs', 0 );
37
- $upload_dir = wp_upload_dir();
38
  $logs_dir = trailingslashit( str_replace( '\\', '/', $upload_dir['basedir'] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-logs/';
39
  $content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
40
  $logs_dir = str_replace( $content_path, '', $logs_dir );
21
  add_site_option( 'backwpup_cfg_showfoldersize', 0 );
22
  add_site_option( 'backwpup_cfg_protectfolders', 1 );
23
  //job
24
+ add_site_option( 'backwpup_cfg_jobmaxexecutiontime', 30 );
 
 
 
 
25
  add_site_option( 'backwpup_cfg_jobstepretry', 3 );
26
  add_site_option( 'backwpup_cfg_jobrunauthkey', substr( md5( BackWPup::get_plugin_data( 'hash' ) ), 11, 8 ) );
27
  add_site_option( 'backwpup_cfg_loglevel', 'normal_translated' );
30
  //Logs
31
  add_site_option( 'backwpup_cfg_maxlogs', 30 );
32
  add_site_option( 'backwpup_cfg_gzlogs', 0 );
33
+ $upload_dir = wp_upload_dir( null, false, true );
34
  $logs_dir = trailingslashit( str_replace( '\\', '/', $upload_dir['basedir'] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-logs/';
35
  $content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
36
  $logs_dir = str_replace( $content_path, '', $logs_dir );
inc/class-page-about.php CHANGED
@@ -14,33 +14,6 @@ class BackWPup_Page_About {
14
 
15
  ?>
16
  <style type="text/css" media="screen">
17
- .inpsyde {
18
- width:79px;
19
- height:119px;
20
- background: url( '<?php echo BackWPup::get_plugin_data( 'URL' );?>/assets/images/inpsyde.png' ) no-repeat;
21
- position: absolute;
22
- top:0;
23
- right: 100px;
24
- z-index: 1;
25
- }
26
- .inpsyde a, .inpsyde a:link{
27
- float:left;
28
- font-size:14px;
29
- color:#fff;
30
- text-decoration:none;
31
- padding:65px 15px 15px 15px;
32
- text-align:center;
33
- }
34
- @media screen and (max-width: 782px) {
35
- .inpsyde {
36
- right:10px;
37
- }
38
- }
39
- @media screen and (max-width: 600px) {
40
- .inpsyde {
41
- display: none;
42
- }
43
- }
44
  #backwpup-page {
45
  background: #fff;
46
  margin-top: 22px;
@@ -381,9 +354,6 @@ class BackWPup_Page_About {
381
 
382
  ?>
383
  <div class="wrap" id="backwpup-page">
384
- <div class="inpsyde">
385
- <a href="http://inpsyde.com/" title="Inpsyde GmbH">Inpsyde</a>
386
- </div>
387
  <?php BackWPup_Admin::display_messages(); ?>
388
  <div class="welcome">
389
  <div class="welcome_inner">
@@ -476,8 +446,6 @@ _e( 'Use your backup archives to save your entire WordPress installation includi
476
  </div>
477
  </div>
478
  </div>
479
-
480
- <?php if ( ! class_exists( 'BackWPup_Pro', FALSE ) ) : ?>
481
  <div class="backwpup_comp">
482
  <h3><?php esc_html_e( 'Features / differences between Free and Pro', 'backwpup' ); ?></h3>
483
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
@@ -652,25 +620,17 @@ _e( 'Use your backup archives to save your entire WordPress installation includi
652
  <td class="tick"></td>
653
  </tr>
654
  <tr class="even">
655
- <td><?php _e( '<strong>Dynamically loaded documentation</strong>', 'backwpup' ); ?></td>
656
- <td class="error" style="border-bottom:none;"></td>
657
- <td class="tick" style="border-bottom:none;"></td>
658
- </tr>
659
- <tr class="odd">
660
  <td><?php _e( '<strong>Automatic update from MarketPress</strong>', 'backwpup' ); ?></td>
661
  <td class="error" style="border-bottom:none;"></td>
662
  <td class="tick" style="border-bottom:none;"></td>
663
  </tr>
664
- <tr class="even ubdown">
665
  <td></td>
666
  <td></td>
667
- <td class="pro buylink"><a href="<?php esc_html_e( 'http://marketpress.com/product/backwpup-pro/', 'backwpup' ); ?>"><?php _e( 'GET PRO', 'backwpup' ); ?></a></td>
668
  </tr>
669
  </table>
670
  </div>
671
- <?php
672
- endif;
673
- ?>
674
  </div>
675
  </div>
676
  <?php
14
 
15
  ?>
16
  <style type="text/css" media="screen">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  #backwpup-page {
18
  background: #fff;
19
  margin-top: 22px;
354
 
355
  ?>
356
  <div class="wrap" id="backwpup-page">
 
 
 
357
  <?php BackWPup_Admin::display_messages(); ?>
358
  <div class="welcome">
359
  <div class="welcome_inner">
446
  </div>
447
  </div>
448
  </div>
 
 
449
  <div class="backwpup_comp">
450
  <h3><?php esc_html_e( 'Features / differences between Free and Pro', 'backwpup' ); ?></h3>
451
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
620
  <td class="tick"></td>
621
  </tr>
622
  <tr class="even">
 
 
 
 
 
623
  <td><?php _e( '<strong>Automatic update from MarketPress</strong>', 'backwpup' ); ?></td>
624
  <td class="error" style="border-bottom:none;"></td>
625
  <td class="tick" style="border-bottom:none;"></td>
626
  </tr>
627
+ <tr class="odd ubdown">
628
  <td></td>
629
  <td></td>
630
+ <td class="pro buylink"><a href="<?php esc_html_e( 'http://backwpup.com', 'backwpup' ); ?>"><?php _e( 'GET PRO', 'backwpup' ); ?></a></td>
631
  </tr>
632
  </table>
633
  </div>
 
 
 
634
  </div>
635
  </div>
636
  <?php
inc/class-page-backwpup.php CHANGED
@@ -112,7 +112,7 @@ class BackWPup_Page_BackWPup {
112
 
113
  if ( current_user_can( 'backwpup_jobs_start' ) ) {?>
114
  <div id="backwpup-one-click-backup" class="metabox-holder postbox backwpup-floated-postbox">
115
- <h3 class="hndle"><span><?php esc_html_e( 'One click backup', 'backwpup' ); ?></span></h3>
116
  <div class="inside">
117
  <a href="<?php echo wp_nonce_url( network_admin_url( 'admin.php?page=backwpup&action=dbdumpdl' ), 'backwpupdbdumpdl' ); ?>" class="button button-primary button-primary-bwp" title="<?php esc_attr_e( 'Generate a database backup of WordPress tables and download it right away!', 'backwpup' ); ?>"><?php esc_html_e( 'Download database backup', 'backwpup' ); ?></a><br />
118
  </div>
@@ -120,11 +120,11 @@ class BackWPup_Page_BackWPup {
120
  <?php } ?>
121
 
122
  <div id="backwpup-rss-feed" class="metabox-holder postbox backwpup-cleared-postbox backwpup-max-width">
123
- <h3 class="hndle"><span><?php esc_attr_e( 'BackWPup News', 'backwpup' ); ?></span></h3>
124
  <div class="inside">
125
  <?php
126
 
127
- $rss = fetch_feed( _x( 'https://marketpress.com/tag/backwpup/feed/', 'BackWPup News RSS Feed URL', 'backwpup' ) );
128
 
129
  if ( is_wp_error( $rss ) ) {
130
  echo '<p>' . sprintf( __('<strong>RSS Error</strong>: %s', 'backwpup' ), $rss->get_error_message() ) . '</p>';
@@ -213,8 +213,7 @@ class BackWPup_Page_BackWPup {
213
  }
214
  } ?>
215
 
216
-
217
- <div class="metabox-holder postbox backwpup-floated-postbox">
218
  <h3 class="hndle"><span><a href="https://www.ostraining.com/">OSTraining</a> <?php esc_html_e( 'Video: Introduction', 'backwpup' ); ?></span></h3>
219
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/pECMkLE27QQ?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
220
  </div>
@@ -224,7 +223,7 @@ class BackWPup_Page_BackWPup {
224
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/F55xEoDnS0U?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
225
  </div>
226
 
227
- <div class="metabox-holder postbox backwpup-floated-postbox">
228
  <h3 class="hndle"><span><a href="https://www.ostraining.com/">OSTraining</a> <?php esc_html_e( 'Video: Daily Backups', 'backwpup' ); ?></span></h3>
229
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/staZo0DS5m4?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
230
  </div>
@@ -234,7 +233,7 @@ class BackWPup_Page_BackWPup {
234
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/3N9FbmBuaac?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
235
  </div>
236
 
237
- <div class="metabox-holder postbox backwpup-floated-postbox">
238
  <h3 class="hndle"><span><a href="https://www.ostraining.com/">OSTraining</a> <?php esc_html_e( 'Video: Restoring Backups', 'backwpup' ); ?></span></h3>
239
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/VIwDp87vYZY?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
240
  </div>
@@ -258,9 +257,9 @@ class BackWPup_Page_BackWPup {
258
  <li><?php _ex( 'First-class <strong>dedicated support</strong> at MarketPress Helpdesk.', 'Pro teaser box', 'backwpup' ); ?></li>
259
  <li><?php echo esc_html_x( 'Differential backups to Google Drive and other cloud storage service.', 'Pro teaser box', 'backwpup' ); ?></li>
260
  <li><?php echo esc_html_x( 'Easy-peasy wizards to create and schedule backup jobs.', 'Pro teaser box', 'backwpup' ); ?></li>
261
- <li><?php printf( '<a href="http://marketpress.com/product/backwpup-pro/">%s</a>', _x( 'And more…', 'Pro teaser box, link text', 'backwpup' ) ); ?></li>
262
  </ul>
263
- <p class="backwpup-text-center"><a href="http://marketpress.com/product/backwpup-pro/" class="button button-primary button-primary-bwp" title="<?php _ex( 'Get BackWPup Pro now', 'Pro teaser box, link title', 'backwpup' ); ?>"><?php _ex( 'Get BackWPup Pro now', 'Pro teaser box, link text', 'backwpup' ); ?></a></p>
264
  </div>
265
  </div>
266
  <?php } ?>
112
 
113
  if ( current_user_can( 'backwpup_jobs_start' ) ) {?>
114
  <div id="backwpup-one-click-backup" class="metabox-holder postbox backwpup-floated-postbox">
115
+ <h3 class="hndle"><span><?php esc_html_e( 'One click backup', 'backwpup' ); ?></span></h3>
116
  <div class="inside">
117
  <a href="<?php echo wp_nonce_url( network_admin_url( 'admin.php?page=backwpup&action=dbdumpdl' ), 'backwpupdbdumpdl' ); ?>" class="button button-primary button-primary-bwp" title="<?php esc_attr_e( 'Generate a database backup of WordPress tables and download it right away!', 'backwpup' ); ?>"><?php esc_html_e( 'Download database backup', 'backwpup' ); ?></a><br />
118
  </div>
120
  <?php } ?>
121
 
122
  <div id="backwpup-rss-feed" class="metabox-holder postbox backwpup-cleared-postbox backwpup-max-width">
123
+ <h3 class="hndle"><span><?php esc_attr_e( 'BackWPup News', 'backwpup' ); ?></span></h3>
124
  <div class="inside">
125
  <?php
126
 
127
+ $rss = fetch_feed( _x( 'http://marketpress.com/news/tag/backwpup/feed/', 'BackWPup News RSS Feed URL', 'backwpup' ) );
128
 
129
  if ( is_wp_error( $rss ) ) {
130
  echo '<p>' . sprintf( __('<strong>RSS Error</strong>: %s', 'backwpup' ), $rss->get_error_message() ) . '</p>';
213
  }
214
  } ?>
215
 
216
+ <div class="metabox-holder postbox backwpup-cleared-postbox backwpup-floated-postbox">
 
217
  <h3 class="hndle"><span><a href="https://www.ostraining.com/">OSTraining</a> <?php esc_html_e( 'Video: Introduction', 'backwpup' ); ?></span></h3>
218
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/pECMkLE27QQ?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
219
  </div>
223
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/F55xEoDnS0U?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
224
  </div>
225
 
226
+ <div class="metabox-holder postbox backwpup-cleared-postbox backwpup-floated-postbox">
227
  <h3 class="hndle"><span><a href="https://www.ostraining.com/">OSTraining</a> <?php esc_html_e( 'Video: Daily Backups', 'backwpup' ); ?></span></h3>
228
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/staZo0DS5m4?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
229
  </div>
233
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/3N9FbmBuaac?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
234
  </div>
235
 
236
+ <div class="metabox-holder postbox backwpup-cleared-postbox backwpup-floated-postbox">
237
  <h3 class="hndle"><span><a href="https://www.ostraining.com/">OSTraining</a> <?php esc_html_e( 'Video: Restoring Backups', 'backwpup' ); ?></span></h3>
238
  <iframe class="inside" width="340" height="190" src="https://www.youtube.com/embed/VIwDp87vYZY?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
239
  </div>
257
  <li><?php _ex( 'First-class <strong>dedicated support</strong> at MarketPress Helpdesk.', 'Pro teaser box', 'backwpup' ); ?></li>
258
  <li><?php echo esc_html_x( 'Differential backups to Google Drive and other cloud storage service.', 'Pro teaser box', 'backwpup' ); ?></li>
259
  <li><?php echo esc_html_x( 'Easy-peasy wizards to create and schedule backup jobs.', 'Pro teaser box', 'backwpup' ); ?></li>
260
+ <li><?php printf( '<a href="' . esc_html__( 'http://backwpup.com', 'backwpup' ) .'">%s</a>', _x( 'And more…', 'Pro teaser box, link text', 'backwpup' ) ); ?></li>
261
  </ul>
262
+ <p class="backwpup-text-center"><a href="<?php esc_html_e( 'http://backwpup.com', 'backwpup' ); ?>" class="button button-primary button-primary-bwp" title="<?php _ex( 'Get BackWPup Pro now', 'Pro teaser box, link title', 'backwpup' ); ?>"><?php _ex( 'Get BackWPup Pro now', 'Pro teaser box, link text', 'backwpup' ); ?></a></p>
263
  </div>
264
  </div>
265
  <?php } ?>
inc/class-page-editjob.php CHANGED
@@ -109,7 +109,7 @@ class BackWPup_Page_Editjob {
109
  $mailaddresslog = implode( ', ', $emails );
110
  BackWPup_Option::update( $jobid, 'mailaddresslog', $mailaddresslog );
111
 
112
- $mailaddresssenderlog = esc_attr( trim( $_POST['mailaddresssenderlog'] ) );
113
  BackWPup_Option::update( $jobid, 'mailaddresssenderlog', $mailaddresssenderlog );
114
 
115
  BackWPup_Option::update( $jobid, 'mailerroronly', ! empty( $_POST['mailerroronly'] ) );
109
  $mailaddresslog = implode( ', ', $emails );
110
  BackWPup_Option::update( $jobid, 'mailaddresslog', $mailaddresslog );
111
 
112
+ $mailaddresssenderlog = trim( $_POST['mailaddresssenderlog'] );
113
  BackWPup_Option::update( $jobid, 'mailaddresssenderlog', $mailaddresssenderlog );
114
 
115
  BackWPup_Option::update( $jobid, 'mailerroronly', ! empty( $_POST['mailerroronly'] ) );
inc/class-page-jobs.php CHANGED
@@ -437,28 +437,6 @@ class BackWPup_Page_Jobs extends WP_List_Table {
437
  }
438
  }
439
 
440
- //check server callback
441
- $raw_response = BackWPup_Job::get_jobrun_url( 'test' );
442
- $response_code = wp_remote_retrieve_response_code( $raw_response );
443
- $response_body = wp_remote_retrieve_body( $raw_response );
444
- if ( strstr( $response_body, 'BackWPup test request') === false ) {
445
- $test_result = __( '<strong>Not expected HTTP response:</strong><br>','backwpup' );
446
- if ( ! $response_code ) {
447
- $test_result .= sprintf( __( 'WP Http Error: <code>%s</code>', 'backwpup' ), esc_html( $raw_response->get_error_message() ) ) . '<br>';
448
- } else {
449
- $test_result .= sprintf( __( 'Status-Code: <code>%d</code>', 'backwpup' ), esc_html( $response_code ) ) . '<br>';
450
- }
451
- $response_headers = wp_remote_retrieve_headers( $raw_response );
452
- foreach( $response_headers as $key => $value ) {
453
- $test_result .= esc_html( ucfirst( $key ) ) . ': <code>' . esc_html( $value ) . '</code><br>';
454
- }
455
- $content = esc_html( wp_remote_retrieve_body( $raw_response ) );
456
- if ( $content ) {
457
- $test_result .= sprintf( __( 'Content: <code>%s</code>', 'backwpup' ), $content );
458
- }
459
- BackWPup_Admin::message( $test_result, true );
460
- }
461
-
462
  //only start job if messages empty
463
  $log_messages = BackWPup_Admin::get_messages();
464
  if ( empty ( $log_messages ) ) {
@@ -473,7 +451,7 @@ class BackWPup_Page_Jobs extends WP_List_Table {
473
  $new_log_file = BackWPup_Option::get( $jobid, 'logfile', null, false );
474
  //wait maximal 10 sec.
475
  if ( $i >= 40 ) {
476
- BackWPup_Admin::message( sprintf( __( 'Job “%s has started, but not responded for 10 seconds.', 'backwpup' ), esc_attr( BackWPup_Option::get( $jobid, 'name' ) ) ), true );
477
  break 2;
478
  }
479
  $i++;
@@ -514,7 +492,7 @@ class BackWPup_Page_Jobs extends WP_List_Table {
514
 
515
  #TB_ajaxContent {
516
  background-color: black;
517
- color: white;
518
  }
519
 
520
  #showworking {
@@ -766,16 +744,18 @@ class BackWPup_Page_Jobs extends WP_List_Table {
766
 
767
  $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
768
  $log_folder = BackWPup_File::get_absolute_path( $log_folder );
769
- $logfile = isset( $_GET[ 'logfile' ] ) ? $log_folder . trim( $_GET[ 'logfile' ] ) : NULL;
770
- $logpos = isset( $_GET[ 'logpos' ] ) ? (int)$_GET[ 'logpos' ] : 0;
771
  $restart_url = '';
772
 
773
  //check if logfile renamed
774
- if ( file_exists( $logfile . '.gz' ) )
775
  $logfile .= '.gz';
 
776
 
777
- if ( ! is_readable( $logfile ) )
778
  die( '0' );
 
779
 
780
  $job_object = BackWPup_Job::get_working_data();
781
  $done = 0;
437
  }
438
  }
439
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  //only start job if messages empty
441
  $log_messages = BackWPup_Admin::get_messages();
442
  if ( empty ( $log_messages ) ) {
451
  $new_log_file = BackWPup_Option::get( $jobid, 'logfile', null, false );
452
  //wait maximal 10 sec.
453
  if ( $i >= 40 ) {
454
+ BackWPup_Admin::message( sprintf( __( 'Job "%s" has started, but not responded for 10 seconds. Please check <a href="%s">information</a>.', 'backwpup' ), esc_attr( BackWPup_Option::get( $jobid, 'name' ) ), network_admin_url( 'admin.php' ) . '?page=backwpupsettings#backwpup-tab-information' ), true );
455
  break 2;
456
  }
457
  $i++;
492
 
493
  #TB_ajaxContent {
494
  background-color: black;
495
+ color: #c0c0c0;
496
  }
497
 
498
  #showworking {
744
 
745
  $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
746
  $log_folder = BackWPup_File::get_absolute_path( $log_folder );
747
+ $logfile = isset( $_GET[ 'logfile' ] ) ? $log_folder . basename( trim( $_GET[ 'logfile' ] ) ) : NULL;
748
+ $logpos = isset( $_GET[ 'logpos' ] ) ? absint( $_GET[ 'logpos' ] ) : 0;
749
  $restart_url = '';
750
 
751
  //check if logfile renamed
752
+ if ( file_exists( $logfile . '.gz' ) ) {
753
  $logfile .= '.gz';
754
+ }
755
 
756
+ if ( ! is_readable( $logfile ) || strstr( $_GET[ 'logfile' ], 'backwpup_log_' ) === false ) {
757
  die( '0' );
758
+ }
759
 
760
  $job_object = BackWPup_Job::get_working_data();
761
  $done = 0;
inc/class-page-logs.php CHANGED
@@ -412,7 +412,7 @@ class BackWPup_Page_Logs extends WP_List_Table {
412
 
413
  $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
414
  $log_folder = BackWPup_File::get_absolute_path( $log_folder );
415
- $log_file = $log_folder . esc_attr( trim( $_GET[ 'log' ] ) );
416
 
417
  if ( file_exists( $log_file . '.html' ) && is_readable( $log_file . '.html' ) ) {
418
  echo file_get_contents( $log_file . '.html', FALSE );
412
 
413
  $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
414
  $log_folder = BackWPup_File::get_absolute_path( $log_folder );
415
+ $log_file = $log_folder . basename( trim( $_GET[ 'log' ] ) );
416
 
417
  if ( file_exists( $log_file . '.html' ) && is_readable( $log_file . '.html' ) ) {
418
  echo file_get_contents( $log_file . '.html', FALSE );
inc/class-page-settings.php CHANGED
@@ -53,6 +53,7 @@ class BackWPup_Page_Settings {
53
  delete_site_option( 'backwpup_cfg_sugarsynckey' );
54
  delete_site_option( 'backwpup_cfg_sugarsyncsecret' );
55
  delete_site_option( 'backwpup_cfg_sugarsyncappid' );
 
56
 
57
  BackWPup_Option::default_site_options();
58
 
@@ -372,7 +373,7 @@ class BackWPup_Page_Settings {
372
  echo '<tfoot><tr><th>' . __( 'Setting', 'backwpup' ) . '</th><th>' . __( 'Value', 'backwpup' ) . '</th></tr></tfoot>';
373
  echo '<tr title="&gt;=3.2"><td>' . __( 'WordPress version', 'backwpup' ) . '</td><td>' . esc_html( BackWPup::get_plugin_data( 'wp_version' ) ) . '</td></tr>';
374
  if ( ! class_exists( 'BackWPup_Pro', FALSE ) )
375
- echo '<tr title=""><td>' . __( 'BackWPup version', 'backwpup' ) . '</td><td>' . esc_html( BackWPup::get_plugin_data( 'Version' ) ) . ' <a href="' . translate( BackWPup::get_plugin_data( 'pluginuri' ), 'backwpup' ) . '">' . __( 'Get pro.', 'backwpup' ) . '</a></td></tr>';
376
  else
377
  echo '<tr title=""><td>' . __( 'BackWPup Pro version', 'backwpup' ) . '</td><td>' . esc_html( BackWPup::get_plugin_data( 'Version' ) ) . '</td></tr>';
378
  $bit = '';
53
  delete_site_option( 'backwpup_cfg_sugarsynckey' );
54
  delete_site_option( 'backwpup_cfg_sugarsyncsecret' );
55
  delete_site_option( 'backwpup_cfg_sugarsyncappid' );
56
+ delete_site_option( 'backwpup_cfg_hash' );
57
 
58
  BackWPup_Option::default_site_options();
59
 
373
  echo '<tfoot><tr><th>' . __( 'Setting', 'backwpup' ) . '</th><th>' . __( 'Value', 'backwpup' ) . '</th></tr></tfoot>';
374
  echo '<tr title="&gt;=3.2"><td>' . __( 'WordPress version', 'backwpup' ) . '</td><td>' . esc_html( BackWPup::get_plugin_data( 'wp_version' ) ) . '</td></tr>';
375
  if ( ! class_exists( 'BackWPup_Pro', FALSE ) )
376
+ echo '<tr title=""><td>' . __( 'BackWPup version', 'backwpup' ) . '</td><td>' . esc_html( BackWPup::get_plugin_data( 'Version' ) ) . ' <a href="' . __( 'http://backwpup.com', 'backwpup' ) . '">' . __( 'Get pro.', 'backwpup' ) . '</a></td></tr>';
377
  else
378
  echo '<tr title=""><td>' . __( 'BackWPup Pro version', 'backwpup' ) . '</td><td>' . esc_html( BackWPup::get_plugin_data( 'Version' ) ) . '</td></tr>';
379
  $bit = '';
languages/backwpup.pot CHANGED
@@ -6,8 +6,8 @@ msgstr ""
6
  "Report-Msgid-Bugs-To: \n"
7
  "POT-Creation-Date: Tue Aug 25 2015 08:53:55 GMT+0200 (Mitteleuropäische "
8
  "Sommerzeit)\n"
9
- "POT-Revision-Date: Tue Mar 22 2016 12:26:55 GMT+0100 (Mitteleuropäische "
10
- "Zeit)\n"
11
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
@@ -31,7 +31,7 @@ msgid "BackWPup Pro"
31
  msgstr ""
32
 
33
  #. URI of the plugin
34
- msgid "https://marketpress.com/product/backwpup-pro"
35
  msgstr ""
36
 
37
  #. Description of the plugin
@@ -46,82 +46,81 @@ msgstr ""
46
  msgid "http://inpsyde.com"
47
  msgstr ""
48
 
49
- #: ../backwpup.php:297 ../inc/class-page-backups.php:271
50
  msgid "Folder"
51
  msgstr ""
52
 
53
- #: ../backwpup.php:298
54
  msgid "Backup to Folder"
55
  msgstr ""
56
 
57
- #: ../backwpup.php:313
58
  msgid "Email"
59
  msgstr ""
60
 
61
- #: ../backwpup.php:314
62
  msgid "Backup sent via email"
63
  msgstr ""
64
 
65
- #: ../backwpup.php:329
66
  msgid "FTP"
67
  msgstr ""
68
 
69
- #: ../backwpup.php:330
70
  msgid "Backup to FTP"
71
  msgstr ""
72
 
73
- #: ../backwpup.php:345 ../inc/class-destination-dropbox.php:307
74
  msgid "Dropbox"
75
  msgstr ""
76
 
77
- #: ../backwpup.php:346 ../inc/class-page-about.php:555
78
  msgid "Backup to Dropbox"
79
  msgstr ""
80
 
81
- #: ../backwpup.php:361 ../inc/class-destination-s3-v1.php:73 ../inc/class-
82
- #: destination-s3.php:76
83
  msgid "S3 Service"
84
  msgstr ""
85
 
86
- #: ../backwpup.php:362
87
  msgid "Backup to an S3 Service"
88
  msgstr ""
89
 
90
- #: ../backwpup.php:380
91
  msgid "MS Azure"
92
  msgstr ""
93
 
94
- #: ../backwpup.php:381
95
  msgid "Backup to Microsoft Azure (Blob)"
96
  msgstr ""
97
 
98
- #: ../backwpup.php:396
99
  msgid "RSC"
100
  msgstr ""
101
 
102
- #: ../backwpup.php:397 ../inc/class-page-about.php:560
103
  msgid "Backup to Rackspace Cloud Files"
104
  msgstr ""
105
 
106
- #: ../backwpup.php:414
107
  msgid "SugarSync"
108
  msgstr ""
109
 
110
- #: ../backwpup.php:415 ../inc/class-page-about.php:575
111
  msgid "Backup to SugarSync"
112
  msgstr ""
113
 
114
- #: ../backwpup.php:434
115
  #, php-format
116
  msgid "PHP Version %1$s is to low, you need Version %2$s or above."
117
  msgstr ""
118
 
119
- #: ../backwpup.php:441
120
  #, php-format
121
  msgid "Missing function \"%s\"."
122
  msgstr ""
123
 
124
- #: ../backwpup.php:450
125
  #, php-format
126
  msgid "Missing class \"%s\"."
127
  msgstr ""
@@ -136,13 +135,13 @@ msgstr ""
136
  msgid "Delete"
137
  msgstr ""
138
 
139
- #: ../inc/class-page-logs.php:136 ../inc/class-page-backwpup.php:283 ../inc/class-
140
- #: page-backwpup.php:351 ../inc/class-page-backups.php:269
141
  msgid "Time"
142
  msgstr ""
143
 
144
- #: ../inc/class-page-logs.php:137 ../inc/class-page-backwpup.php:283 ../inc/class-
145
- #: page-backwpup.php:352
146
  msgid "Job"
147
  msgstr ""
148
 
@@ -163,8 +162,8 @@ msgstr ""
163
  msgid "Runtime"
164
  msgstr ""
165
 
166
- #: ../inc/class-page-logs.php:164 ../inc/class-page-backwpup.php:312 ../inc/class-
167
- #: page-backwpup.php:389 ../inc/class-page-jobs.php:318 ../inc/class-page-backups.
168
  #: php:361
169
  #, php-format
170
  msgid "%1$s at %2$s"
@@ -207,12 +206,12 @@ msgid "Log only"
207
  msgstr ""
208
 
209
  #: ../inc/class-page-logs.php:257 ../inc/class-destination-ftp.php:86 ..
210
- #: /inc/class-page-settings.php:452
211
  msgid "seconds"
212
  msgstr ""
213
 
214
- #: ../inc/class-page-logs.php:328 ../inc/class-admin.php:194 ../inc/class-admin.
215
- #: php:194 ../inc/class-adminbar.php:102 ../inc/class-page-settings.php:114
216
  msgid "Logs"
217
  msgstr ""
218
 
@@ -260,30 +259,27 @@ msgstr ""
260
  msgid "Folder in container"
261
  msgstr ""
262
 
263
- #: ../inc/class-destination-msazure.php:76 ../inc/class-destination-s3-v1.php:156
264
- #: ../inc/class-destination-s3.php:163 ../inc/class-destination-rsc.php:105 ..
265
- #: /inc/pro/class-destination-glacier.php:95
266
  msgid "File deletion"
267
  msgstr ""
268
 
269
- #: ../inc/class-destination-msazure.php:83 ../inc/class-destination-s3-v1.php:163
270
- #: ../inc/class-destination-sugarsync.php:98 ../inc/class-destination-folder.php:
271
- #: 46 ../inc/class-destination-dropbox.php:125 ../inc/class-destination-ftp.php:
272
- #: 66 ../inc/class-destination-s3.php:170 ../inc/class-destination-rsc.php:112 ..
273
- #: /inc/pro/class-destination-msazure.php:45 ../inc/pro/class-destination-s3-v1.
274
- #: php:70 ../inc/pro/class-destination-folder.php:43 ../inc/pro/class-destination-
275
  #: dropbox.php:52 ../inc/pro/class-destination-s3.php:73 ../inc/pro/class-
276
  #: destination-rsc.php:65 ../inc/pro/class-destination-gdrive.php:78 ..
277
  #: /inc/pro/class-destination-gdrive.php:303
278
  msgid "Number of files to keep in folder."
279
  msgstr ""
280
 
281
- #: ../inc/class-destination-msazure.php:88 ../inc/class-destination-s3-v1.php:168
282
- #: ../inc/class-destination-sugarsync.php:103 ../inc/class-destination-folder.php:
283
- #: 51 ../inc/class-destination-dropbox.php:130 ../inc/class-destination-ftp.php:
284
- #: 71 ../inc/class-destination-s3.php:175 ../inc/class-destination-rsc.php:117 ..
285
- #: /inc/pro/class-destination-msazure.php:56 ../inc/pro/class-destination-s3-v1.
286
- #: php:76 ../inc/pro/class-destination-sugarsync.php:65 ../inc/pro/class-
287
  #: destination-folder.php:48 ../inc/pro/class-destination-dropbox.php:55 ..
288
  #: /inc/pro/class-destination-ftp.php:44 ../inc/pro/class-destination-s3.php:78 ..
289
  #: /inc/pro/class-destination-rsc.php:70 ../inc/pro/class-destination-gdrive.php:
@@ -356,9 +352,8 @@ msgstr[1] ""
356
  msgid "Missing account name!"
357
  msgstr ""
358
 
359
- #: ../inc/class-destination-msazure.php:443 ../inc/class-destination-s3-v1.php:
360
- #: 587 ../inc/class-destination-s3.php:714 ../inc/pro/class-destination-glacier.
361
- #: php:568
362
  msgid "Missing access key!"
363
  msgstr ""
364
 
@@ -388,8 +383,8 @@ msgid "all"
388
  msgstr ""
389
 
390
  #: ../inc/class-jobtype-dbdump.php:67 ../inc/class-jobtype-dbdump.php:103 ..
391
- #: /inc/class-page-backwpup.php:332 ../inc/class-page-backwpup.php:397 ..
392
- #: /inc/class-destination-email.php:106 ../inc/class-page-settings.php:312 ..
393
  #: /inc/class-jobtype-wpexp.php:73 ../inc/class-jobtype-wpplugin.php:57 ..
394
  #: /inc/pro/class-jobtype-dbdump.php:157 ../inc/pro/class-jobtype-dbdump.php:205
395
  msgid "none"
@@ -443,17 +438,17 @@ msgstr ""
443
  msgid "Database backup done!"
444
  msgstr ""
445
 
446
- #: ../inc/class-page-about.php:394
447
  msgid "Welcome to BackWPup Pro"
448
  msgstr ""
449
 
450
- #: ../inc/class-page-about.php:395 ../inc/class-page-backwpup.php:75
451
  msgid ""
452
  "BackWPup’s job wizards make planning and scheduling your backup jobs a "
453
  "breeze."
454
  msgstr ""
455
 
456
- #: ../inc/class-page-about.php:396 ../inc/class-page-about.php:406
457
  msgid ""
458
  "Use your backup archives to save your entire WordPress installation "
459
  "including <code>/wp-content/</code>. Push them to an external storage "
@@ -464,42 +459,42 @@ msgid ""
464
  "backup files."
465
  msgstr ""
466
 
467
- #: ../inc/class-page-about.php:397
468
  #, php-format
469
  msgid ""
470
  "Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use "
471
  "the wizards</a> or plan your backup in expert mode."
472
  msgstr ""
473
 
474
- #: ../inc/class-page-about.php:404
475
  msgid "Welcome to BackWPup"
476
  msgstr ""
477
 
478
- #: ../inc/class-page-about.php:407
479
  msgid ""
480
  "Ready to set up a backup job? Use one of the wizards to plan what you want "
481
  "to save."
482
  msgstr ""
483
 
484
- #: ../inc/class-page-about.php:424
485
  msgid "Please activate your license"
486
  msgstr ""
487
 
488
- #: ../inc/class-page-about.php:425
489
  msgid ""
490
  "Please go to your plugin page and active the license to have the autoupdates "
491
  "enabled."
492
  msgstr ""
493
 
494
- #: ../inc/class-page-about.php:434
495
  msgid "Save your database"
496
  msgstr ""
497
 
498
- #: ../inc/class-page-about.php:437
499
  msgid "Save your database regularly"
500
  msgstr ""
501
 
502
- #: ../inc/class-page-about.php:438
503
  #, php-format
504
  msgid ""
505
  "With BackWPup you can schedule the database backup to run automatically. "
@@ -508,11 +503,11 @@ msgid ""
508
  "also an option to repair and optimize the database after each backup."
509
  msgstr ""
510
 
511
- #: ../inc/class-page-about.php:443 ../inc/class-page-about.php:447
512
  msgid "WordPress XML Export"
513
  msgstr ""
514
 
515
- #: ../inc/class-page-about.php:444
516
  msgid ""
517
  "You can choose the built-in WordPress export format in addition or exclusive "
518
  "to save your data. This works in automated backups too of course. The "
@@ -520,15 +515,15 @@ msgid ""
520
  "WordPress importer."
521
  msgstr ""
522
 
523
- #: ../inc/class-page-about.php:452
524
  msgid "Save all data from the webserver"
525
  msgstr ""
526
 
527
- #: ../inc/class-page-about.php:455
528
  msgid "Save all files"
529
  msgstr ""
530
 
531
- #: ../inc/class-page-about.php:456
532
  #, php-format
533
  msgid ""
534
  "You can backup all your attachments, also all system files, plugins and "
@@ -536,177 +531,169 @@ msgid ""
536
  "backup copy of your file system only when files are changed."
537
  msgstr ""
538
 
539
- #: ../inc/class-page-about.php:461 ../inc/class-page-about.php:465
540
  msgid "Security!"
541
  msgstr ""
542
 
543
- #: ../inc/class-page-about.php:462
544
  msgid ""
545
  "By default everything is encrypted: connections to external services, local "
546
  "files and access to directories."
547
  msgstr ""
548
 
549
- #: ../inc/class-page-about.php:470 ../inc/class-page-about.php:473
550
  msgid "Cloud Support"
551
  msgstr ""
552
 
553
- #: ../inc/class-page-about.php:474
554
  msgid ""
555
  "BackWPup supports multiple cloud services in parallel. This ensures backups "
556
  "are redundant."
557
  msgstr ""
558
 
559
- #: ../inc/class-page-about.php:482
560
  msgid "Features / differences between Free and Pro"
561
  msgstr ""
562
 
563
- #: ../inc/class-page-about.php:485
564
  msgid "Features"
565
  msgstr ""
566
 
567
- #: ../inc/class-page-about.php:486
568
  msgid "FREE"
569
  msgstr ""
570
 
571
- #: ../inc/class-page-about.php:487
572
  msgid "PRO"
573
  msgstr ""
574
 
575
- #: ../inc/class-page-about.php:490
576
  msgid "Complete database backup"
577
  msgstr ""
578
 
579
- #: ../inc/class-page-about.php:495
580
  msgid "Complete file backup"
581
  msgstr ""
582
 
583
- #: ../inc/class-page-about.php:500
584
  msgid "Database check"
585
  msgstr ""
586
 
587
- #: ../inc/class-page-about.php:505
588
  msgid "Data compression"
589
  msgstr ""
590
 
591
- #: ../inc/class-page-about.php:510 ../inc/class-jobtype-wpexp.php:14
592
  msgid "WordPress XML export"
593
  msgstr ""
594
 
595
- #: ../inc/class-page-about.php:515
596
  msgid "List of installed plugins"
597
  msgstr ""
598
 
599
- #: ../inc/class-page-about.php:520
600
  msgid "Backup archives management"
601
  msgstr ""
602
 
603
- #: ../inc/class-page-about.php:525
604
  msgid "Log file management"
605
  msgstr ""
606
 
607
- #: ../inc/class-page-about.php:530
608
  msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
609
  msgstr ""
610
 
611
- #: ../inc/class-page-about.php:535
612
  msgid "Log report via email"
613
  msgstr ""
614
 
615
- #: ../inc/class-page-about.php:540
616
  msgid "Backup to Microsoft Azure"
617
  msgstr ""
618
 
619
- #: ../inc/class-page-about.php:545
620
  msgid "Backup as email"
621
  msgstr ""
622
 
623
- #: ../inc/class-page-about.php:550
624
  msgid ""
625
  "Backup to S3 services <small>(Amazon, Google Storage, Hosteurope and "
626
  "more)</small>"
627
  msgstr ""
628
 
629
- #: ../inc/class-page-about.php:565
630
  msgid "Backup to FTP server"
631
  msgstr ""
632
 
633
- #: ../inc/class-page-about.php:570
634
  msgid "Backup to your web space"
635
  msgstr ""
636
 
637
- #: ../inc/class-page-about.php:580 ../inc/pro/class-pro.php:128
638
  msgid "Backup to Google Drive"
639
  msgstr ""
640
 
641
- #: ../inc/class-page-about.php:585 ../inc/pro/class-pro.php:109
642
  msgid "Backup to Amazon Glacier"
643
  msgstr ""
644
 
645
- #: ../inc/class-page-about.php:590
646
  msgid "Custom API keys for DropBox and SugarSync"
647
  msgstr ""
648
 
649
- #: ../inc/class-page-about.php:595
650
  msgid "XML database backup as PHPMyAdmin schema"
651
  msgstr ""
652
 
653
- #: ../inc/class-page-about.php:600
654
  msgid "Database backup as mysqldump per command line"
655
  msgstr ""
656
 
657
- #: ../inc/class-page-about.php:605
658
  msgid "Database backup for additional MySQL databases"
659
  msgstr ""
660
 
661
- #: ../inc/class-page-about.php:610
662
  msgid "Import and export job settings as XML"
663
  msgstr ""
664
 
665
- #: ../inc/class-page-about.php:615
666
  msgid "Wizard for system tests"
667
  msgstr ""
668
 
669
- #: ../inc/class-page-about.php:620
670
  msgid "Wizard for scheduled backup jobs"
671
  msgstr ""
672
 
673
- #: ../inc/class-page-about.php:625
674
  msgid "Wizard to import settings and backup jobs"
675
  msgstr ""
676
 
677
- #: ../inc/class-page-about.php:630
678
  msgid "Differential backup of changed directories to Dropbox"
679
  msgstr ""
680
 
681
- #: ../inc/class-page-about.php:635
682
  msgid "Differential backup of changed directories to Rackspace Cloud Files"
683
  msgstr ""
684
 
685
- #: ../inc/class-page-about.php:640
686
  msgid "Differential backup of changed directories to S3"
687
  msgstr ""
688
 
689
- #: ../inc/class-page-about.php:645
690
  msgid "Differential backup of changed directories to MS Azure"
691
  msgstr ""
692
 
693
- #: ../inc/class-page-about.php:650
694
  msgid "<strong>Premium support</strong>"
695
  msgstr ""
696
 
697
- #: ../inc/class-page-about.php:655
698
- msgid "<strong>Dynamically loaded documentation</strong>"
699
- msgstr ""
700
-
701
- #: ../inc/class-page-about.php:660
702
  msgid "<strong>Automatic update from MarketPress</strong>"
703
  msgstr ""
704
 
705
- #: ../inc/class-page-about.php:667
706
- msgid "http://marketpress.com/product/backwpup-pro/"
707
- msgstr ""
708
-
709
- #: ../inc/class-page-about.php:667
710
  msgid "GET PRO"
711
  msgstr ""
712
 
@@ -815,7 +802,7 @@ msgstr ""
815
 
816
  #: ../inc/class-page-backwpup.php:127
817
  msgctxt "BackWPup News RSS Feed URL"
818
- msgid "https://marketpress.com/tag/backwpup/feed/"
819
  msgstr ""
820
 
821
  #: ../inc/class-page-backwpup.php:130
@@ -837,213 +824,213 @@ msgstr ""
837
  msgid "Start wizard"
838
  msgstr ""
839
 
840
- #: ../inc/class-page-backwpup.php:218
841
  msgid "Video: Introduction"
842
  msgstr ""
843
 
844
- #: ../inc/class-page-backwpup.php:223
845
  msgid "Video: Settings"
846
  msgstr ""
847
 
848
- #: ../inc/class-page-backwpup.php:228
849
  msgid "Video: Daily Backups"
850
  msgstr ""
851
 
852
- #: ../inc/class-page-backwpup.php:233
853
  msgid "Video: Creating Full Backups"
854
  msgstr ""
855
 
856
- #: ../inc/class-page-backwpup.php:238
857
  msgid "Video: Restoring Backups"
858
  msgstr ""
859
 
860
- #: ../inc/class-page-backwpup.php:253
861
  msgctxt "Pro teaser box"
862
  msgid "Thank you for using BackWPup!"
863
  msgstr ""
864
 
865
- #: ../inc/class-page-backwpup.php:256
866
  msgctxt "Pro teaser box"
867
  msgid "Get access to:"
868
  msgstr ""
869
 
870
- #: ../inc/class-page-backwpup.php:258
871
  msgctxt "Pro teaser box"
872
  msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
873
  msgstr ""
874
 
875
- #: ../inc/class-page-backwpup.php:259
876
  msgctxt "Pro teaser box"
877
  msgid "Differential backups to Google Drive and other cloud storage service."
878
  msgstr ""
879
 
880
- #: ../inc/class-page-backwpup.php:260
881
  msgctxt "Pro teaser box"
882
  msgid "Easy-peasy wizards to create and schedule backup jobs."
883
  msgstr ""
884
 
885
- #: ../inc/class-page-backwpup.php:261
886
  msgctxt "Pro teaser box, link text"
887
  msgid "And more…"
888
  msgstr ""
889
 
890
- #: ../inc/class-page-backwpup.php:263
891
  msgctxt "Pro teaser box, link title"
892
  msgid "Get BackWPup Pro now"
893
  msgstr ""
894
 
895
- #: ../inc/class-page-backwpup.php:263
896
  msgctxt "Pro teaser box, link text"
897
  msgid "Get BackWPup Pro now"
898
  msgstr ""
899
 
900
- #: ../inc/class-page-backwpup.php:281
901
  msgid "Last logs"
902
  msgstr ""
903
 
904
- #: ../inc/class-page-backwpup.php:283
905
  msgid "Result"
906
  msgstr ""
907
 
908
- #: ../inc/class-page-backwpup.php:317
909
  #, php-format
910
  msgid "%d ERROR"
911
  msgstr ""
912
 
913
- #: ../inc/class-page-backwpup.php:320
914
  #, php-format
915
  msgid "%d WARNING"
916
  msgstr ""
917
 
918
- #: ../inc/class-page-backwpup.php:323
919
  msgid "OK"
920
  msgstr ""
921
 
922
- #: ../inc/class-page-backwpup.php:348
923
  msgid "Next scheduled jobs"
924
  msgstr ""
925
 
926
- #: ../inc/class-page-backwpup.php:375
927
  #, php-format
928
  msgid "working since %d seconds"
929
  msgstr ""
930
 
931
- #: ../inc/class-page-backwpup.php:377 ../inc/class-page-jobs.php:630
932
  msgid "Abort"
933
  msgstr ""
934
 
935
- #: ../inc/class-page-backwpup.php:391 ../inc/class-page-jobs.php:282 ../inc/class-
936
- #: page-jobs.php:291 ../inc/class-job.php:340
937
  msgid "Not scheduled!"
938
  msgstr ""
939
 
940
- #: ../inc/class-page-backwpup.php:393
941
  msgid "Edit Job"
942
  msgstr ""
943
 
944
- #: ../inc/class-jobtype-file.php:15
945
  msgid "Files"
946
  msgstr ""
947
 
948
- #: ../inc/class-jobtype-file.php:16
949
  msgid "File backup"
950
  msgstr ""
951
 
952
- #: ../inc/class-jobtype-file.php:73
953
  msgid "Folders to backup"
954
  msgstr ""
955
 
956
- #: ../inc/class-jobtype-file.php:77
957
  msgid "Backup WordPress install folder"
958
  msgstr ""
959
 
960
- #: ../inc/class-jobtype-file.php:88 ../inc/class-jobtype-file.php:125 ..
961
- #: /inc/class-jobtype-file.php:162 ../inc/class-jobtype-file.php:199 ../inc/class-
962
- #: jobtype-file.php:236
963
  #, php-format
964
  msgid "Path as set by user (symlink?): %s"
965
  msgstr ""
966
 
967
- #: ../inc/class-jobtype-file.php:91 ../inc/class-jobtype-file.php:128 ..
968
- #: /inc/class-jobtype-file.php:165 ../inc/class-jobtype-file.php:202 ../inc/class-
969
- #: jobtype-file.php:239
970
  msgid "Exclude:"
971
  msgstr ""
972
 
973
- #: ../inc/class-jobtype-file.php:102 ../inc/class-jobtype-file.php:139 ..
974
- #: /inc/class-jobtype-file.php:176 ../inc/class-jobtype-file.php:213 ../inc/class-
975
- #: jobtype-file.php:250
976
  msgid "Excluded by .donotbackup file!"
977
  msgstr ""
978
 
979
- #: ../inc/class-jobtype-file.php:114
980
  msgid "Backup content folder"
981
  msgstr ""
982
 
983
- #: ../inc/class-jobtype-file.php:151
984
  msgid "Backup plugins"
985
  msgstr ""
986
 
987
- #: ../inc/class-jobtype-file.php:188
988
  msgid "Backup themes"
989
  msgstr ""
990
 
991
- #: ../inc/class-jobtype-file.php:225 ../inc/pro/class-wizard-job.php:745 ..
992
  #: /inc/pro/class-wizard-job.php:746
993
  msgid "Backup uploads folder"
994
  msgstr ""
995
 
996
- #: ../inc/class-jobtype-file.php:262
997
  msgid "Extra folders to backup"
998
  msgstr ""
999
 
1000
- #: ../inc/class-jobtype-file.php:265
1001
  msgid ""
1002
  "Separate folder names with a line-break or a comma. Folders must be set with "
1003
  "their absolute path!"
1004
  msgstr ""
1005
 
1006
- #: ../inc/class-jobtype-file.php:270
1007
  msgid "Exclude from backup"
1008
  msgstr ""
1009
 
1010
- #: ../inc/class-jobtype-file.php:274
1011
  msgid "Thumbnails in uploads"
1012
  msgstr ""
1013
 
1014
- #: ../inc/class-jobtype-file.php:276
1015
  msgid "Don't backup thumbnails from the site's uploads folder."
1016
  msgstr ""
1017
 
1018
- #: ../inc/class-jobtype-file.php:280
1019
  msgid "Exclude files/folders from backup"
1020
  msgstr ""
1021
 
1022
- #: ../inc/class-jobtype-file.php:283
1023
  msgid ""
1024
  "Separate file / folder name parts with a line-break or a comma. For example "
1025
  "/logs/,.log,.tmp"
1026
  msgstr ""
1027
 
1028
- #: ../inc/class-jobtype-file.php:288
1029
  msgid "Special options"
1030
  msgstr ""
1031
 
1032
- #: ../inc/class-jobtype-file.php:292
1033
  msgid "Include special files"
1034
  msgstr ""
1035
 
1036
- #: ../inc/class-jobtype-file.php:294
1037
  msgid ""
1038
  "Backup wp-config.php, robots.txt, nginx.conf, .htaccess, .htpasswd and "
1039
  "favicon.ico from root if it is not included in backup."
1040
  msgstr ""
1041
 
1042
- #: ../inc/class-jobtype-file.php:298
1043
  msgid "Use one folder above as WP install folder"
1044
  msgstr ""
1045
 
1046
- #: ../inc/class-jobtype-file.php:301
1047
  msgid ""
1048
  "Use one folder above as WordPress install folder! That can be helpful, if "
1049
  "you would backup files and folder that are not in the WordPress installation "
@@ -1052,29 +1039,29 @@ msgid ""
1052
  "Directory</a>\" installation. Excludes must be configured again."
1053
  msgstr ""
1054
 
1055
- #: ../inc/class-jobtype-file.php:391
1056
  #, php-format
1057
  msgid "%d. Trying to make a list of folders to back up&#160;&hellip;"
1058
  msgstr ""
1059
 
1060
- #: ../inc/class-jobtype-file.php:507 ../inc/class-jobtype-file.php:512 ..
1061
- #: /inc/class-jobtype-file.php:517 ../inc/class-jobtype-file.php:521 ../inc/class-
1062
- #: jobtype-file.php:525 ../inc/class-jobtype-file.php:529 ../inc/class-jobtype-
1063
- #: file.php:533
1064
  #, php-format
1065
  msgid "Added \"%s\" to backup file list"
1066
  msgstr ""
1067
 
1068
- #: ../inc/class-jobtype-file.php:538
1069
  msgid "No files/folder for the backup."
1070
  msgstr ""
1071
 
1072
- #: ../inc/class-jobtype-file.php:540
1073
  #, php-format
1074
  msgid "%1$d folders to backup."
1075
  msgstr ""
1076
 
1077
- #: ../inc/class-jobtype-file.php:579
1078
  #, php-format
1079
  msgid "Folder \"%s\" is not readable!"
1080
  msgstr ""
@@ -1095,7 +1082,7 @@ msgstr ""
1095
  msgid "Nothing to abort!"
1096
  msgstr ""
1097
 
1098
- #: ../inc/class-wp-cli.php:59 ../inc/class-page-jobs.php:493
1099
  msgid "Job will be terminated."
1100
  msgstr ""
1101
 
@@ -1103,225 +1090,6 @@ msgstr ""
1103
  msgid "No job running"
1104
  msgstr ""
1105
 
1106
- #: ../inc/class-destination-s3-v1.php:77 ../inc/class-destination-s3.php:80
1107
- msgid "Select a S3 service"
1108
- msgstr ""
1109
-
1110
- #: ../inc/class-destination-s3-v1.php:79 ../inc/class-destination-s3.php:82 ..
1111
- #: /inc/pro/class-destination-s3-v1.php:18 ../inc/pro/class-destination-s3.php:18
1112
- msgid "Amazon S3 Region"
1113
- msgstr ""
1114
-
1115
- #: ../inc/class-destination-s3-v1.php:80 ../inc/class-destination-s3.php:83 ..
1116
- #: /inc/pro/class-destination-s3-v1.php:19 ../inc/pro/class-destination-s3.php:19
1117
- msgid "Amazon S3: US Standard"
1118
- msgstr ""
1119
-
1120
- #: ../inc/class-destination-s3-v1.php:81 ../inc/class-destination-s3.php:84 ..
1121
- #: /inc/pro/class-destination-s3-v1.php:20 ../inc/pro/class-destination-s3.php:20
1122
- msgid "Amazon S3: US West (Northern California)"
1123
- msgstr ""
1124
-
1125
- #: ../inc/class-destination-s3-v1.php:82 ../inc/class-destination-s3.php:85 ..
1126
- #: /inc/pro/class-destination-s3-v1.php:21 ../inc/pro/class-destination-s3.php:21
1127
- msgid "Amazon S3: US West (Oregon)"
1128
- msgstr ""
1129
-
1130
- #: ../inc/class-destination-s3-v1.php:83 ../inc/class-destination-s3.php:86 ..
1131
- #: /inc/pro/class-destination-s3-v1.php:22 ../inc/pro/class-destination-s3.php:22
1132
- msgid "Amazon S3: EU (Ireland)"
1133
- msgstr ""
1134
-
1135
- #: ../inc/class-destination-s3-v1.php:84 ../inc/class-destination-s3.php:87 ..
1136
- #: /inc/pro/class-destination-s3.php:23
1137
- msgid "Amazon S3: EU (Germany)"
1138
- msgstr ""
1139
-
1140
- #: ../inc/class-destination-s3-v1.php:85 ../inc/class-destination-s3.php:88 ..
1141
- #: /inc/pro/class-destination-s3-v1.php:23 ../inc/pro/class-destination-s3.php:24
1142
- msgid "Amazon S3: Asia Pacific (Tokyo)"
1143
- msgstr ""
1144
-
1145
- #: ../inc/class-destination-s3-v1.php:86 ../inc/class-destination-s3.php:89 ..
1146
- #: /inc/pro/class-destination-s3-v1.php:24 ../inc/pro/class-destination-s3.php:25
1147
- msgid "Amazon S3: Asia Pacific (Seoul)"
1148
- msgstr ""
1149
-
1150
- #: ../inc/class-destination-s3-v1.php:87 ../inc/class-destination-s3.php:90 ..
1151
- #: /inc/pro/class-destination-s3-v1.php:25 ../inc/pro/class-destination-s3.php:26
1152
- msgid "Amazon S3: Asia Pacific (Singapore)"
1153
- msgstr ""
1154
-
1155
- #: ../inc/class-destination-s3-v1.php:88 ../inc/class-destination-s3.php:91 ..
1156
- #: /inc/pro/class-destination-s3-v1.php:26 ../inc/pro/class-destination-s3.php:27
1157
- msgid "Amazon S3: Asia Pacific (Sydney)"
1158
- msgstr ""
1159
-
1160
- #: ../inc/class-destination-s3-v1.php:89 ../inc/class-destination-s3.php:92 ..
1161
- #: /inc/pro/class-destination-s3-v1.php:27 ../inc/pro/class-destination-s3.php:28
1162
- msgid "Amazon S3: South America (Sao Paulo)"
1163
- msgstr ""
1164
-
1165
- #: ../inc/class-destination-s3-v1.php:90 ../inc/class-destination-s3.php:93 ..
1166
- #: /inc/pro/class-destination-s3-v1.php:28 ../inc/pro/class-destination-s3.php:29
1167
- msgid "Amazon S3: China (Beijing)"
1168
- msgstr ""
1169
-
1170
- #: ../inc/class-destination-s3-v1.php:91 ../inc/pro/class-destination-s3-v1.php:29
1171
- msgid "Google Storage (Interoperable Access)"
1172
- msgstr ""
1173
-
1174
- #: ../inc/class-destination-s3-v1.php:92 ../inc/class-destination-s3.php:97 ..
1175
- #: /inc/pro/class-destination-s3-v1.php:31 ../inc/pro/class-destination-s3.php:33
1176
- msgid "Dream Host Cloud Storage"
1177
- msgstr ""
1178
-
1179
- #: ../inc/class-destination-s3-v1.php:93 ../inc/class-destination-s3.php:98 ..
1180
- #: /inc/pro/class-destination-s3-v1.php:32 ../inc/pro/class-destination-s3.php:34
1181
- msgid "GreenQloud Storage Qloud"
1182
- msgstr ""
1183
-
1184
- #: ../inc/class-destination-s3-v1.php:98 ../inc/class-destination-s3.php:103
1185
- msgid "Or a S3 Server URL"
1186
- msgstr ""
1187
-
1188
- #: ../inc/class-destination-s3-v1.php:105 ../inc/class-destination-s3.php:110
1189
- msgid "S3 Access Keys"
1190
- msgstr ""
1191
-
1192
- #: ../inc/class-destination-s3-v1.php:109 ../inc/class-destination-s3.php:114 ..
1193
- #: /inc/pro/class-destination-glacier.php:53
1194
- msgid "Access Key"
1195
- msgstr ""
1196
-
1197
- #: ../inc/class-destination-s3-v1.php:115 ../inc/class-destination-s3.php:121 ..
1198
- #: /inc/pro/class-destination-glacier.php:60
1199
- msgid "Secret Key"
1200
- msgstr ""
1201
-
1202
- #: ../inc/class-destination-s3-v1.php:122 ../inc/class-destination-s3.php:129
1203
- msgid "S3 Bucket"
1204
- msgstr ""
1205
-
1206
- #: ../inc/class-destination-s3-v1.php:126 ../inc/class-destination-s3.php:133
1207
- msgid "Bucket selection"
1208
- msgstr ""
1209
-
1210
- #: ../inc/class-destination-s3-v1.php:139 ../inc/class-destination-s3.php:146
1211
- msgid "Create a new bucket"
1212
- msgstr ""
1213
-
1214
- #: ../inc/class-destination-s3-v1.php:146 ../inc/class-destination-s3.php:153
1215
- msgid "S3 Backup settings"
1216
- msgstr ""
1217
-
1218
- #: ../inc/class-destination-s3-v1.php:150 ../inc/class-destination-s3.php:157 ..
1219
- #: /inc/class-destination-rsc.php:99
1220
- msgid "Folder in bucket"
1221
- msgstr ""
1222
-
1223
- #: ../inc/class-destination-s3-v1.php:175 ../inc/class-destination-s3.php:191
1224
- msgid "Amazon specific settings"
1225
- msgstr ""
1226
-
1227
- #: ../inc/class-destination-s3-v1.php:179 ../inc/class-destination-s3-v1.php:181 .
1228
- #: ./inc/class-destination-s3.php:195 ../inc/class-destination-s3.php:197
1229
- msgid "Amazon: Storage Class"
1230
- msgstr ""
1231
-
1232
- #: ../inc/class-destination-s3-v1.php:182 ../inc/class-destination-s3.php:198
1233
- msgid "Standard"
1234
- msgstr ""
1235
-
1236
- #: ../inc/class-destination-s3-v1.php:183 ../inc/class-destination-s3.php:199
1237
- msgid "Standard-Infrequent Access"
1238
- msgstr ""
1239
-
1240
- #: ../inc/class-destination-s3-v1.php:184 ../inc/class-destination-s3.php:200
1241
- msgid "Reduced Redundancy"
1242
- msgstr ""
1243
-
1244
- #: ../inc/class-destination-s3-v1.php:189 ../inc/class-destination-s3.php:205
1245
- msgid "Server side encryption"
1246
- msgstr ""
1247
-
1248
- #: ../inc/class-destination-s3-v1.php:193 ../inc/class-destination-s3.php:209
1249
- msgid "Save files encrypted (AES256) on server."
1250
- msgstr ""
1251
-
1252
- #: ../inc/class-destination-s3-v1.php:257 ../inc/class-destination-s3.php:269
1253
- #, php-format
1254
- msgid "Bucket %1$s created."
1255
- msgstr ""
1256
-
1257
- #: ../inc/class-destination-s3-v1.php:259 ../inc/pro/class-destination-s3-v1.php:
1258
- #: 149
1259
- #, php-format
1260
- msgid "Bucket %s could not be created."
1261
- msgstr ""
1262
-
1263
- #: ../inc/class-destination-s3-v1.php:305 ../inc/class-destination-s3-v1.php:431 .
1264
- #: ./inc/class-destination-s3-v1.php:482 ../inc/class-destination-s3.php:312 ..
1265
- #: /inc/class-destination-s3.php:445 ../inc/class-destination-s3.php:499 ..
1266
- #: /inc/class-destination-s3.php:533 ../inc/class-destination-s3.php:593 ..
1267
- #: /inc/pro/class-destination-s3-v1.php:328 ../inc/pro/class-destination-s3.php:337
1268
- #, php-format
1269
- msgid "S3 Service API: %s"
1270
- msgstr ""
1271
-
1272
- #: ../inc/class-destination-s3-v1.php:374 ../inc/class-destination-s3.php:380
1273
- #, php-format
1274
- msgid "%d. Trying to send backup file to S3 Service&#160;&hellip;"
1275
- msgstr ""
1276
-
1277
- #: ../inc/class-destination-s3-v1.php:395 ../inc/class-destination-s3.php:393 ..
1278
- #: /inc/pro/class-destination-s3-v1.php:196 ../inc/pro/class-destination-s3.php:188
1279
- #, php-format
1280
- msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
1281
- msgstr ""
1282
-
1283
- #: ../inc/class-destination-s3-v1.php:398 ../inc/class-destination-s3.php:396 ..
1284
- #: /inc/pro/class-destination-s3-v1.php:199 ../inc/pro/class-destination-s3.php:191
1285
- #, php-format
1286
- msgid "S3 Bucket \"%s\" does not exist!"
1287
- msgstr ""
1288
-
1289
- #: ../inc/class-destination-s3-v1.php:404 ../inc/class-destination-s3.php:415
1290
- msgid "Starting upload to S3 Service&#160;&hellip;"
1291
- msgstr ""
1292
-
1293
- #: ../inc/class-destination-s3-v1.php:422 ../inc/class-destination-s3.php:524 ..
1294
- #: /inc/pro/class-destination-glacier.php:374
1295
- #, php-format
1296
- msgid "Backup transferred to %s."
1297
- msgstr ""
1298
-
1299
- #: ../inc/class-destination-s3-v1.php:427 ../inc/class-destination-s3.php:529
1300
- #, php-format
1301
- msgid "Cannot transfer backup to S3! (%1$d) %2$s"
1302
- msgstr ""
1303
-
1304
- #: ../inc/class-destination-s3-v1.php:472 ../inc/class-destination-s3.php:583
1305
- #, php-format
1306
- msgid "Cannot delete backup from %s."
1307
- msgstr ""
1308
-
1309
- #: ../inc/class-destination-s3-v1.php:476 ../inc/class-destination-s3.php:587
1310
- #, php-format
1311
- msgid "One file deleted on S3 Bucket."
1312
- msgid_plural "%d files deleted on S3 Bucket"
1313
- msgstr[0] ""
1314
- msgstr[1] ""
1315
-
1316
- #: ../inc/class-destination-s3-v1.php:589 ../inc/class-destination-s3.php:716 ..
1317
- #: /inc/pro/class-destination-glacier.php:570
1318
- msgid "Missing secret access key!"
1319
- msgstr ""
1320
-
1321
- #: ../inc/class-destination-s3-v1.php:595 ../inc/class-destination-s3.php:722
1322
- msgid "No bucket found!"
1323
- msgstr ""
1324
-
1325
  #: ../inc/class-create-archive.php:64
1326
  msgid "The file name of an archive cannot be empty."
1327
  msgstr ""
@@ -1450,109 +1218,66 @@ msgid ""
1450
  "the backup job in multiple jobs with less files each."
1451
  msgstr ""
1452
 
1453
- #: ../inc/class-admin.php:130 ../inc/class-help.php:29
1454
- msgid "https://marketpress.com/documentation/backwpup-pro/"
1455
  msgstr ""
1456
 
1457
- #: ../inc/class-admin.php:130 ../inc/pro/class-marketpress-documentation.php:151 .
1458
- #: ./inc/pro/class-pro.php:194 ../inc/pro/class-pro.php:194
1459
  msgid "Documentation"
1460
  msgstr ""
1461
 
1462
- #: ../inc/class-admin.php:132 ../inc/class-help.php:26
1463
- msgid "https://marketpress.com/support/forum/plugins/backwpup-pro/"
1464
- msgstr ""
1465
-
1466
- #: ../inc/class-admin.php:132 ../inc/class-help.php:26
1467
- msgid "Pro Support"
1468
- msgstr ""
1469
-
1470
- #: ../inc/class-admin.php:134 ../inc/class-help.php:28
1471
- msgid "http://wordpress.org/support/plugin/backwpup/"
1472
- msgstr ""
1473
-
1474
- #: ../inc/class-admin.php:134 ../inc/class-help.php:28
1475
- msgid "Support"
1476
- msgstr ""
1477
-
1478
- #: ../inc/class-admin.php:147
1479
  msgid "BackWPup Dashboard"
1480
  msgstr ""
1481
 
1482
- #: ../inc/class-admin.php:147
1483
  msgid "Dashboard"
1484
  msgstr ""
1485
 
1486
- #: ../inc/class-admin.php:164 ../inc/class-admin.php:164 ../inc/class-adminbar.
1487
- #: php:86 ../inc/class-page-settings.php:114
1488
  msgid "Jobs"
1489
  msgstr ""
1490
 
1491
- #: ../inc/class-admin.php:179 ../inc/class-admin.php:179
1492
  msgid "Add new job"
1493
  msgstr ""
1494
 
1495
- #: ../inc/class-admin.php:209 ../inc/class-admin.php:209 ../inc/class-adminbar.
1496
  #: php:110
1497
  msgid "Backups"
1498
  msgstr ""
1499
 
1500
- #: ../inc/class-admin.php:224 ../inc/class-admin.php:224
1501
  msgid "Settings"
1502
  msgstr ""
1503
 
1504
- #: ../inc/class-admin.php:237 ../inc/class-admin.php:237
1505
  msgid "About"
1506
  msgstr ""
1507
 
1508
- #: ../inc/class-admin.php:272 ../inc/class-admin.php:278
1509
  msgid "Cheating, huh?"
1510
  msgstr ""
1511
 
1512
- #: ../inc/class-admin.php:393
1513
- msgid "http://marketpress.com"
1514
- msgstr ""
1515
-
1516
- #: ../inc/class-admin.php:393 ../inc/class-admin.php:393
1517
- msgid "MarketPress"
1518
- msgstr ""
1519
-
1520
- #: ../inc/class-admin.php:395
1521
  #, php-format
1522
  msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
1523
  msgstr ""
1524
 
1525
- #: ../inc/class-admin.php:415
1526
  #, php-format
1527
  msgid "version %s"
1528
  msgstr ""
1529
 
1530
- #: ../inc/class-admin.php:460
1531
  msgid "Add BackWPup Role"
1532
  msgstr ""
1533
 
1534
- #: ../inc/class-admin.php:464
1535
  msgid "&mdash; No additional role for BackWPup &mdash;"
1536
  msgstr ""
1537
 
1538
- #: ../inc/class-admin.php:547
1539
- #, php-format
1540
- msgid ""
1541
- "<strong>Important:</strong> before updating, please <a href=\"%1$s\">back up "
1542
- "your database and files</a> with <a href=\"http://marketpress."
1543
- "de/product/backwpup-pro/\">%2$s</a>. For help with updates, visit the <a "
1544
- "href=\"http://codex.wordpress.org/Updating_WordPress\">Updating WordPress</a> "
1545
- "Codex page."
1546
- msgstr ""
1547
-
1548
- #: ../inc/class-admin.php:551 ../inc/class-admin.php:555
1549
- #, php-format
1550
- msgid ""
1551
- "<strong>Important:</strong> before installing this plugin, please <a "
1552
- "href=\"%1$s\">back up your database and files</a> with <a href=\"http:"
1553
- "//marketpress.de/product/backwpup-pro/\">%2$s</a>."
1554
- msgstr ""
1555
-
1556
  #: ../inc/class-easycron.php:179
1557
  #, php-format
1558
  msgid "EasyCron.com API returns (%s): %s"
@@ -1986,6 +1711,58 @@ msgid_plural "%d files deleted on FTP server"
1986
  msgstr[0] ""
1987
  msgstr[1] ""
1988
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1989
  #: ../inc/class-destination-s3.php:94 ../inc/pro/class-destination-s3.php:30
1990
  msgid "Google Storage: EU"
1991
  msgstr ""
@@ -1998,6 +1775,50 @@ msgstr ""
1998
  msgid "Google Storage: Asia"
1999
  msgstr ""
2000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2001
  #: ../inc/class-destination-s3.php:182
2002
  msgid "Multipart Upload"
2003
  msgstr ""
@@ -2013,23 +1834,112 @@ msgid ""
2013
  "Works without a problem on Amazon. Other services might have issues."
2014
  msgstr ""
2015
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2016
  #: ../inc/class-destination-s3.php:271 ../inc/pro/class-destination-s3.php:147
2017
  #, php-format
2018
  msgid " %s is not a valid bucket name."
2019
  msgstr ""
2020
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2021
  #: ../inc/class-destination-s3.php:403
2022
  msgid "Checking for not aborted multipart Uploads&#160;&hellip;"
2023
  msgstr ""
2024
 
2025
- #: ../inc/class-destination-s3.php:409
2026
- #, php-format
2027
- msgid "Upload for %s aborted."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2028
  msgstr ""
2029
 
2030
- #: ../inc/class-destination-s3.php:557
2031
- #, php-format
2032
- msgid "Storage Class: %s"
2033
  msgstr ""
2034
 
2035
  #: ../inc/class-file.php:154
@@ -2164,100 +2074,83 @@ msgstr ""
2164
  msgid "The job \"%s\" needs properly configured destinations to run!"
2165
  msgstr ""
2166
 
2167
- #: ../inc/class-page-jobs.php:445 ../inc/class-page-settings.php:402
2168
- msgid "<strong>Not expected HTTP response:</strong><br>"
2169
- msgstr ""
2170
-
2171
- #: ../inc/class-page-jobs.php:447 ../inc/class-page-settings.php:404
2172
- #, php-format
2173
- msgid "WP Http Error: <code>%s</code>"
2174
- msgstr ""
2175
-
2176
- #: ../inc/class-page-jobs.php:449 ../inc/class-page-settings.php:406
2177
  #, php-format
2178
- msgid "Status-Code: <code>%d</code>"
2179
- msgstr ""
2180
-
2181
- #: ../inc/class-page-jobs.php:457 ../inc/class-page-settings.php:414
2182
- #, php-format
2183
- msgid "Content: <code>%s</code>"
2184
- msgstr ""
2185
-
2186
- #: ../inc/class-page-jobs.php:476
2187
- #, php-format
2188
- msgid "Job “%s” has started, but not responded for 10 seconds."
2189
  msgstr ""
2190
 
2191
- #: ../inc/class-page-jobs.php:481
2192
  #, php-format
2193
  msgid "Job \"%s\" started."
2194
  msgstr ""
2195
 
2196
- #: ../inc/class-page-jobs.php:606
2197
  #, php-format
2198
  msgid "%s &rsaquo; Jobs"
2199
  msgstr ""
2200
 
2201
- #: ../inc/class-page-jobs.php:606 ../inc/class-adminbar.php:94
2202
  msgid "Add new"
2203
  msgstr ""
2204
 
2205
- #: ../inc/class-page-jobs.php:626
2206
  #, php-format
2207
  msgid "Job currently running: %s"
2208
  msgstr ""
2209
 
2210
- #: ../inc/class-page-jobs.php:627
2211
  msgid "Warnings:"
2212
  msgstr ""
2213
 
2214
- #: ../inc/class-page-jobs.php:628
2215
  msgid "Errors:"
2216
  msgstr ""
2217
 
2218
- #: ../inc/class-page-jobs.php:629
2219
  msgid "Log of running job"
2220
  msgstr ""
2221
 
2222
- #: ../inc/class-page-jobs.php:629
2223
  msgid "Display working log"
2224
  msgstr ""
2225
 
2226
- #: ../inc/class-page-jobs.php:631
2227
  msgid "Close working screen"
2228
  msgstr ""
2229
 
2230
- #: ../inc/class-page-jobs.php:631
2231
  msgid "Close"
2232
  msgstr ""
2233
 
2234
- #: ../inc/class-page-jobs.php:798
2235
  msgid "Job completed"
2236
  msgstr ""
2237
 
2238
- #: ../inc/class-page-jobs.php:800 ../inc/class-job.php:1261
2239
  msgid "ERROR:"
2240
  msgstr ""
2241
 
2242
- #: ../inc/class-page-jobs.php:800 ../inc/class-job.php:1484
2243
  #, php-format
2244
  msgid ""
2245
  "Job has ended with errors in %s seconds. You must resolve the errors for "
2246
  "correct execution."
2247
  msgstr ""
2248
 
2249
- #: ../inc/class-page-jobs.php:802 ../inc/class-job.php:1252
2250
  msgid "WARNING:"
2251
  msgstr ""
2252
 
2253
- #: ../inc/class-page-jobs.php:802
2254
  #, php-format
2255
  msgid ""
2256
  "Job has done with warnings in %s seconds. Please resolve them for correct "
2257
  "execution."
2258
  msgstr ""
2259
 
2260
- #: ../inc/class-page-jobs.php:804 ../inc/class-job.php:1488
2261
  #, php-format
2262
  msgid "Job done in %s seconds."
2263
  msgstr ""
@@ -2418,14 +2311,6 @@ msgid "Plugin on wordpress.org"
2418
  msgstr ""
2419
 
2420
  #: ../inc/class-help.php:24
2421
- msgid "https://marketpress.com/news/"
2422
- msgstr ""
2423
-
2424
- #: ../inc/class-help.php:24
2425
- msgid "News"
2426
- msgstr ""
2427
-
2428
- #: ../inc/class-help.php:29
2429
  msgid "Manual"
2430
  msgstr ""
2431
 
@@ -2540,162 +2425,162 @@ msgstr ""
2540
  msgid "Run Now"
2541
  msgstr ""
2542
 
2543
- #: ../inc/class-page-settings.php:59
2544
  msgid "Settings reset to default"
2545
  msgstr ""
2546
 
2547
- #: ../inc/class-page-settings.php:101
2548
  msgid "Settings saved"
2549
  msgstr ""
2550
 
2551
- #: ../inc/class-page-settings.php:112
2552
  #, php-format
2553
  msgid "%s &rsaquo; Settings"
2554
  msgstr ""
2555
 
2556
- #: ../inc/class-page-settings.php:114 ../inc/class-page-editjob.php:416
2557
  msgid "General"
2558
  msgstr ""
2559
 
2560
- #: ../inc/class-page-settings.php:114
2561
  msgid "Network"
2562
  msgstr ""
2563
 
2564
- #: ../inc/class-page-settings.php:114
2565
  msgid "API Keys"
2566
  msgstr ""
2567
 
2568
- #: ../inc/class-page-settings.php:114
2569
  msgid "Information"
2570
  msgstr ""
2571
 
2572
- #: ../inc/class-page-settings.php:132
2573
  msgid "Display Settings"
2574
  msgstr ""
2575
 
2576
- #: ../inc/class-page-settings.php:133
2577
  msgid "Do you want to see BackWPup in the WordPress admin bar?"
2578
  msgstr ""
2579
 
2580
- #: ../inc/class-page-settings.php:136
2581
  msgid "Admin bar"
2582
  msgstr ""
2583
 
2584
- #: ../inc/class-page-settings.php:139
2585
  msgid "Admin Bar"
2586
  msgstr ""
2587
 
2588
- #: ../inc/class-page-settings.php:142
2589
  msgid "Show BackWPup links in admin bar."
2590
  msgstr ""
2591
 
2592
- #: ../inc/class-page-settings.php:148 ../inc/class-page-settings.php:151
2593
  msgid "Folder sizes"
2594
  msgstr ""
2595
 
2596
- #: ../inc/class-page-settings.php:154
2597
  msgid ""
2598
  "Display folder sizes in the files tab when editing a job. (Might increase "
2599
  "loading time of files tab.)"
2600
  msgstr ""
2601
 
2602
- #: ../inc/class-page-settings.php:160
2603
  msgid "Security"
2604
  msgstr ""
2605
 
2606
- #: ../inc/class-page-settings.php:161
2607
  msgid "Security option for BackWPup"
2608
  msgstr ""
2609
 
2610
- #: ../inc/class-page-settings.php:164 ../inc/class-page-settings.php:167
2611
  msgid "Protect folders"
2612
  msgstr ""
2613
 
2614
- #: ../inc/class-page-settings.php:170
2615
  msgid ""
2616
  "Protect BackWPup folders ( Temp, Log and Backups ) with <code>."
2617
  "htaccess</code> and <code>index.php</code>"
2618
  msgstr ""
2619
 
2620
- #: ../inc/class-page-settings.php:183
2621
  msgid ""
2622
  "Every time BackWPup runs a backup job, a log file is being generated. Choose "
2623
  "where to store your log files and how many of them."
2624
  msgstr ""
2625
 
2626
- #: ../inc/class-page-settings.php:186
2627
  msgid "Log file folder"
2628
  msgstr ""
2629
 
2630
- #: ../inc/class-page-settings.php:189
2631
  #, php-format
2632
  msgid "You can use absolute or relative path! Relative path is relative to %s."
2633
  msgstr ""
2634
 
2635
- #: ../inc/class-page-settings.php:193
2636
  msgid "Maximum log files"
2637
  msgstr ""
2638
 
2639
- #: ../inc/class-page-settings.php:196
2640
  msgid "Maximum log files in folder."
2641
  msgstr ""
2642
 
2643
- #: ../inc/class-page-settings.php:200 ../inc/class-page-settings.php:203
2644
  msgid "Compression"
2645
  msgstr ""
2646
 
2647
- #: ../inc/class-page-settings.php:206
2648
  msgid "Compress log files with GZip."
2649
  msgstr ""
2650
 
2651
- #: ../inc/class-page-settings.php:212 ../inc/class-page-settings.php:215
2652
  msgid "Logging Level"
2653
  msgstr ""
2654
 
2655
- #: ../inc/class-page-settings.php:218
2656
  msgid "Normal (translated)"
2657
  msgstr ""
2658
 
2659
- #: ../inc/class-page-settings.php:219
2660
  msgid "Normal (not translated)"
2661
  msgstr ""
2662
 
2663
- #: ../inc/class-page-settings.php:220
2664
  msgid "Debug (translated)"
2665
  msgstr ""
2666
 
2667
- #: ../inc/class-page-settings.php:221
2668
  msgid "Debug (not translated)"
2669
  msgstr ""
2670
 
2671
- #: ../inc/class-page-settings.php:224
2672
  msgid ""
2673
  "Debug log has much more informations than normal logs. It is for support and "
2674
  "should be handled carefully. For support is the best to use a not translated "
2675
  "log file. Usage of not translated logs can reduce the PHP memory usage too."
2676
  msgstr ""
2677
 
2678
- #: ../inc/class-page-settings.php:233
2679
  msgid "There are a couple of general options for backup jobs. Set them here."
2680
  msgstr ""
2681
 
2682
- #: ../inc/class-page-settings.php:236
2683
  msgid "Maximum number of retries for job steps"
2684
  msgstr ""
2685
 
2686
- #: ../inc/class-page-settings.php:242
2687
  msgid "Maximum script execution time"
2688
  msgstr ""
2689
 
2690
- #: ../inc/class-page-settings.php:245
2691
  msgid "Maximum PHP Script execution time"
2692
  msgstr ""
2693
 
2694
- #: ../inc/class-page-settings.php:248
2695
  msgid "seconds."
2696
  msgstr ""
2697
 
2698
- #: ../inc/class-page-settings.php:249
2699
  msgid ""
2700
  "Job will restart before hitting maximum execution time. Restarts will be "
2701
  "disabled on CLI usage. If <code>ALTERNATE_WP_CRON</code> has been defined, "
@@ -2703,292 +2588,311 @@ msgid ""
2703
  "maximum."
2704
  msgstr ""
2705
 
2706
- #: ../inc/class-page-settings.php:256
2707
  msgid "Key to start jobs externally with an URL"
2708
  msgstr ""
2709
 
2710
- #: ../inc/class-page-settings.php:260
2711
  msgid "Will be used to protect job starts from unauthorized person."
2712
  msgstr ""
2713
 
2714
- #: ../inc/class-page-settings.php:264 ../inc/class-page-settings.php:267
2715
  msgid "Reduce server load"
2716
  msgstr ""
2717
 
2718
- #: ../inc/class-page-settings.php:270
2719
  msgid "disabled"
2720
  msgstr ""
2721
 
2722
- #: ../inc/class-page-settings.php:271
2723
  msgid "minimum"
2724
  msgstr ""
2725
 
2726
- #: ../inc/class-page-settings.php:272
2727
  msgid "medium"
2728
  msgstr ""
2729
 
2730
- #: ../inc/class-page-settings.php:273
2731
  msgid "maximum"
2732
  msgstr ""
2733
 
2734
- #: ../inc/class-page-settings.php:276
2735
  msgid "This adds short pauses to the process. Can be used to reduce the CPU load."
2736
  msgstr ""
2737
 
2738
- #: ../inc/class-page-settings.php:281
2739
  msgid "Empty output on working"
2740
  msgstr ""
2741
 
2742
- #: ../inc/class-page-settings.php:284 ../inc/class-page-settings.php:287
2743
  msgid "Enable an empty Output on backup working."
2744
  msgstr ""
2745
 
2746
- #: ../inc/class-page-settings.php:289
2747
  msgid ""
2748
  "This do an empty output on job working. This can help in some situations or "
2749
  "can brake the working. You must test it."
2750
  msgstr ""
2751
 
2752
- #: ../inc/class-page-settings.php:299
2753
  #, php-format
2754
  msgid "Authentication for <code>%s</code>"
2755
  msgstr ""
2756
 
2757
- #: ../inc/class-page-settings.php:300
2758
  msgid ""
2759
  "If you protected your blog with HTTP basic authentication (.htaccess), or "
2760
  "you use a Plugin to secure wp-cron.php, than use the authentication methods "
2761
  "below."
2762
  msgstr ""
2763
 
2764
- #: ../inc/class-page-settings.php:306 ../inc/class-page-settings.php:309
2765
  msgid "Authentication method"
2766
  msgstr ""
2767
 
2768
- #: ../inc/class-page-settings.php:313
2769
  msgid "Basic auth"
2770
  msgstr ""
2771
 
2772
- #: ../inc/class-page-settings.php:314
2773
  msgid "WordPress User"
2774
  msgstr ""
2775
 
2776
- #: ../inc/class-page-settings.php:315
2777
  msgid "Query argument"
2778
  msgstr ""
2779
 
2780
- #: ../inc/class-page-settings.php:322
2781
  msgid "Basic Auth Username:"
2782
  msgstr ""
2783
 
2784
- #: ../inc/class-page-settings.php:328
2785
  msgid "Basic Auth Password:"
2786
  msgstr ""
2787
 
2788
- #: ../inc/class-page-settings.php:333 ../inc/class-page-settings.php:336
2789
  msgid "Select WordPress User"
2790
  msgstr ""
2791
 
2792
- #: ../inc/class-page-settings.php:352
2793
  msgid "Query arg key=value:"
2794
  msgstr ""
2795
 
2796
- #: ../inc/class-page-settings.php:371 ../inc/class-page-settings.php:372
2797
  msgid "Setting"
2798
  msgstr ""
2799
 
2800
- #: ../inc/class-page-settings.php:371 ../inc/class-page-settings.php:372
2801
  msgid "Value"
2802
  msgstr ""
2803
 
2804
- #: ../inc/class-page-settings.php:373
2805
  msgid "WordPress version"
2806
  msgstr ""
2807
 
2808
- #: ../inc/class-page-settings.php:375
2809
  msgid "BackWPup version"
2810
  msgstr ""
2811
 
2812
- #: ../inc/class-page-settings.php:375
2813
  msgid "Get pro."
2814
  msgstr ""
2815
 
2816
- #: ../inc/class-page-settings.php:377
2817
  msgid "BackWPup Pro version"
2818
  msgstr ""
2819
 
2820
- #: ../inc/class-page-settings.php:385
2821
  msgid "PHP version"
2822
  msgstr ""
2823
 
2824
- #: ../inc/class-page-settings.php:386
2825
  msgid "MySQL version"
2826
  msgstr ""
2827
 
2828
- #: ../inc/class-page-settings.php:389 ../inc/class-page-settings.php:393
2829
  msgid "cURL version"
2830
  msgstr ""
2831
 
2832
- #: ../inc/class-page-settings.php:390
2833
  msgid "cURL SSL version"
2834
  msgstr ""
2835
 
2836
- #: ../inc/class-page-settings.php:393
2837
  msgid "unavailable"
2838
  msgstr ""
2839
 
2840
- #: ../inc/class-page-settings.php:395
2841
  msgid "WP-Cron url:"
2842
  msgstr ""
2843
 
2844
- #: ../inc/class-page-settings.php:397
2845
  msgid "Server self connect:"
2846
  msgstr ""
2847
 
2848
- #: ../inc/class-page-settings.php:418
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2849
  msgid "Response Test O.K."
2850
  msgstr ""
2851
 
2852
- #: ../inc/class-page-settings.php:422
2853
  msgid "Temp folder:"
2854
  msgstr ""
2855
 
2856
- #: ../inc/class-page-settings.php:424
2857
  #, php-format
2858
  msgid "Temp folder %s doesn't exist."
2859
  msgstr ""
2860
 
2861
- #: ../inc/class-page-settings.php:426
2862
  #, php-format
2863
  msgid "Temporary folder %s is not writable."
2864
  msgstr ""
2865
 
2866
- #: ../inc/class-page-settings.php:433
2867
  msgid "Log folder:"
2868
  msgstr ""
2869
 
2870
- #: ../inc/class-page-settings.php:435
2871
  #, php-format
2872
  msgid "Logs folder %s not exist."
2873
  msgstr ""
2874
 
2875
- #: ../inc/class-page-settings.php:437
2876
  #, php-format
2877
  msgid "Log folder %s is not writable."
2878
  msgstr ""
2879
 
2880
- #: ../inc/class-page-settings.php:442
2881
  msgid "Server"
2882
  msgstr ""
2883
 
2884
- #: ../inc/class-page-settings.php:443
2885
  msgid "Operating System"
2886
  msgstr ""
2887
 
2888
- #: ../inc/class-page-settings.php:444
2889
  msgid "PHP SAPI"
2890
  msgstr ""
2891
 
2892
- #: ../inc/class-page-settings.php:445
2893
  msgid "Function Disabled"
2894
  msgstr ""
2895
 
2896
- #: ../inc/class-page-settings.php:449
2897
  msgid "Current PHP user"
2898
  msgstr ""
2899
 
2900
- #: ../inc/class-page-settings.php:450 ../inc/class-page-settings.php:454 ..
2901
- #: /inc/class-page-settings.php:458
2902
  msgid "On"
2903
  msgstr ""
2904
 
2905
- #: ../inc/class-page-settings.php:450 ../inc/class-page-settings.php:456 ..
2906
- #: /inc/class-page-settings.php:460
2907
  msgid "Off"
2908
  msgstr ""
2909
 
2910
- #: ../inc/class-page-settings.php:451
2911
  msgid "Safe Mode"
2912
  msgstr ""
2913
 
2914
- #: ../inc/class-page-settings.php:452
2915
  msgid "Maximum execution time"
2916
  msgstr ""
2917
 
2918
- #: ../inc/class-page-settings.php:454 ../inc/class-page-settings.php:456
2919
  msgid "Alternative WP Cron"
2920
  msgstr ""
2921
 
2922
- #: ../inc/class-page-settings.php:458 ../inc/class-page-settings.php:460
2923
  msgid "Disabled WP Cron"
2924
  msgstr ""
2925
 
2926
- #: ../inc/class-page-settings.php:462 ../inc/class-page-settings.php:464
2927
  msgid "CHMOD Dir"
2928
  msgstr ""
2929
 
2930
- #: ../inc/class-page-settings.php:466
2931
  msgid "Server Time"
2932
  msgstr ""
2933
 
2934
- #: ../inc/class-page-settings.php:467
2935
  msgid "Blog Time"
2936
  msgstr ""
2937
 
2938
- #: ../inc/class-page-settings.php:468
2939
  msgid "Blog Timezone"
2940
  msgstr ""
2941
 
2942
- #: ../inc/class-page-settings.php:469
2943
  msgid "Blog Time offset"
2944
  msgstr ""
2945
 
2946
- #: ../inc/class-page-settings.php:469
2947
  #, php-format
2948
  msgid "%s hours"
2949
  msgstr ""
2950
 
2951
- #: ../inc/class-page-settings.php:470
2952
  msgid "Blog language"
2953
  msgstr ""
2954
 
2955
- #: ../inc/class-page-settings.php:471
2956
  msgid "MySQL Client encoding"
2957
  msgstr ""
2958
 
2959
- #: ../inc/class-page-settings.php:474
2960
  msgid "Blog charset"
2961
  msgstr ""
2962
 
2963
- #: ../inc/class-page-settings.php:475
2964
  msgid "PHP Memory limit"
2965
  msgstr ""
2966
 
2967
- #: ../inc/class-page-settings.php:476
2968
  msgid "WP memory limit"
2969
  msgstr ""
2970
 
2971
- #: ../inc/class-page-settings.php:477
2972
  msgid "WP maximum memory limit"
2973
  msgstr ""
2974
 
2975
- #: ../inc/class-page-settings.php:478
2976
  msgid "Memory in use"
2977
  msgstr ""
2978
 
2979
- #: ../inc/class-page-settings.php:483
2980
  msgid "Disabled PHP Functions:"
2981
  msgstr ""
2982
 
2983
- #: ../inc/class-page-settings.php:488
2984
  msgid "Loaded PHP Extensions:"
2985
  msgstr ""
2986
 
2987
- #: ../inc/class-page-settings.php:500
2988
  msgid "Save Changes"
2989
  msgstr ""
2990
 
2991
- #: ../inc/class-page-settings.php:502
2992
  msgid "Reset all settings to default"
2993
  msgstr ""
2994
 
@@ -3113,11 +3017,11 @@ msgstr ""
3113
  msgid "Cannot open SQL backup file"
3114
  msgstr ""
3115
 
3116
- #: ../inc/class-mysqldump.php:153 ../inc/class-mysqldump.php:164 ../inc/class-
3117
- #: mysqldump.php:257 ../inc/class-mysqldump.php:270 ../inc/class-mysqldump.php:
3118
- #: 285 ../inc/class-mysqldump.php:298 ../inc/class-mysqldump.php:313 ../inc/class-
3119
- #: mysqldump.php:322 ../inc/class-mysqldump.php:368 ../inc/class-mysqldump.php:
3120
- #: 392 ../inc/class-mysqldump.php:430 ../inc/class-mysqldump.php:487 ..
3121
  #: /inc/pro/class-jobtype-dbdump.php:859 ../inc/pro/class-jobtype-dbdump.php:873 .
3122
  #: ./inc/pro/class-jobtype-dbdump.php:921 ../inc/pro/class-jobtype-dbdump.php:940
3123
  #: ../inc/pro/class-jobtype-dbdump.php:983
@@ -3125,355 +3029,478 @@ msgstr ""
3125
  msgid "Database error %1$s for query %2$s"
3126
  msgstr ""
3127
 
3128
- #: ../inc/class-mysqldump.php:466
3129
  #, php-format
3130
  msgid "Start for table backup is not correctly set: %1$s"
3131
  msgstr ""
3132
 
3133
- #: ../inc/class-mysqldump.php:470
3134
  #, php-format
3135
  msgid "Length for table backup is not correctly set: %1$s"
3136
  msgstr ""
3137
 
3138
- #: ../inc/class-mysqldump.php:545
3139
  msgid "Error while writing file!"
3140
  msgstr ""
3141
 
3142
- #: ../inc/class-job.php:175
3143
  msgid "Starting job"
3144
  msgstr ""
3145
 
3146
- #: ../inc/class-job.php:190
3147
  msgid "Job Start"
3148
  msgstr ""
3149
 
3150
- #: ../inc/class-job.php:210
3151
  msgid "Creates manifest file"
3152
  msgstr ""
3153
 
3154
- #: ../inc/class-job.php:232
3155
  msgid "Creates archive"
3156
  msgstr ""
3157
 
3158
- #: ../inc/class-job.php:272
3159
  msgid "End of Job"
3160
  msgstr ""
3161
 
3162
- #: ../inc/class-job.php:289
3163
  #, php-format
3164
  msgid "BackWPup log for %1$s from %2$s at %3$s"
3165
  msgstr ""
3166
 
3167
- #: ../inc/class-job.php:306
3168
  #, php-format
3169
  msgctxt "Plugin name; Plugin Version; plugin url"
3170
  msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
3171
  msgstr ""
3172
 
3173
- #: ../inc/class-job.php:308
3174
  #, php-format
3175
  msgctxt "WordPress Version; Blog url"
3176
  msgid "[INFO] WordPress %1$s on %2$s"
3177
  msgstr ""
3178
 
3179
- #: ../inc/class-job.php:310
3180
  msgid "Normal"
3181
  msgstr ""
3182
 
3183
- #: ../inc/class-job.php:313
3184
  msgid "Debug"
3185
  msgstr ""
3186
 
3187
- #: ../inc/class-job.php:316
3188
  msgid "(translated)"
3189
  msgstr ""
3190
 
3191
- #: ../inc/class-job.php:318
3192
  #, php-format
3193
  msgid "[INFO] Log Level: %1$s %2$s"
3194
  msgstr ""
3195
 
3196
- #: ../inc/class-job.php:323
3197
  #, php-format
3198
  msgid "[INFO] BackWPup job: %1$s"
3199
  msgstr ""
3200
 
3201
- #: ../inc/class-job.php:326
3202
  #, php-format
3203
  msgid "[INFO] Runs with user: %1$s (%2$d) "
3204
  msgstr ""
3205
 
3206
- #: ../inc/class-job.php:344 ../inc/class-job.php:354
3207
  #, php-format
3208
  msgid "[INFO] Cron: %s; Next: %s "
3209
  msgstr ""
3210
 
3211
- #: ../inc/class-job.php:347
3212
  msgid "[INFO] BackWPup job start with link is active"
3213
  msgstr ""
3214
 
3215
- #: ../inc/class-job.php:349
3216
  msgid "[INFO] BackWPup job start with EasyCron.com"
3217
  msgstr ""
3218
 
3219
- #: ../inc/class-job.php:357
3220
  msgid "[INFO] BackWPup no automatic job start configured"
3221
  msgstr ""
3222
 
3223
- #: ../inc/class-job.php:361
3224
  msgid "[INFO] BackWPup job started from wp-cron"
3225
  msgstr ""
3226
 
3227
- #: ../inc/class-job.php:363
3228
  msgid "[INFO] BackWPup job started manually"
3229
  msgstr ""
3230
 
3231
- #: ../inc/class-job.php:365
3232
  msgid "[INFO] BackWPup job started from external url"
3233
  msgstr ""
3234
 
3235
- #: ../inc/class-job.php:367
3236
  msgid "[INFO] BackWPup job started form commandline interface"
3237
  msgstr ""
3238
 
3239
- #: ../inc/class-job.php:376
3240
  msgid "[INFO] PHP ver.:"
3241
  msgstr ""
3242
 
3243
- #: ../inc/class-job.php:377
3244
  #, php-format
3245
  msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
3246
  msgstr ""
3247
 
3248
- #: ../inc/class-job.php:381
3249
  #, php-format
3250
  msgid "[INFO] Script restart time is configured to %1$d seconds"
3251
  msgstr ""
3252
 
3253
- #: ../inc/class-job.php:384
3254
  #, php-format
3255
  msgid "[INFO] MySQL ver.: %s"
3256
  msgstr ""
3257
 
3258
- #: ../inc/class-job.php:386
3259
  #, php-format
3260
  msgid "[INFO] Web Server: %s"
3261
  msgstr ""
3262
 
3263
- #: ../inc/class-job.php:390
3264
  #, php-format
3265
  msgid "[INFO] curl ver.: %1$s; %2$s"
3266
  msgstr ""
3267
 
3268
- #: ../inc/class-job.php:392
3269
  #, php-format
3270
  msgid "[INFO] Temp folder is: %s"
3271
  msgstr ""
3272
 
3273
- #: ../inc/class-job.php:399
3274
  #, php-format
3275
  msgid "[INFO] Logfile is: %s"
3276
  msgstr ""
3277
 
3278
- #: ../inc/class-job.php:406
3279
  #, php-format
3280
  msgid "[INFO] Backup file is: %s"
3281
  msgstr ""
3282
 
3283
- #: ../inc/class-job.php:408
3284
  #, php-format
3285
  msgid "[INFO] Backup type is: %s"
3286
  msgstr ""
3287
 
3288
- #: ../inc/class-job.php:416
3289
  msgid "Could not write log file"
3290
  msgstr ""
3291
 
3292
- #: ../inc/class-job.php:428
3293
  msgid "No destination correctly defined for backup! Please correct job settings."
3294
  msgstr ""
3295
 
3296
- #: ../inc/class-job.php:666
3297
  msgid "Wrong BackWPup JobID"
3298
  msgstr ""
3299
 
3300
- #: ../inc/class-job.php:679
3301
  msgid "A BackWPup job is already running"
3302
  msgstr ""
3303
 
3304
- #: ../inc/class-job.php:735
3305
  msgid "Job restarts due to inactivity for more than 5 minutes."
3306
  msgstr ""
3307
 
3308
- #: ../inc/class-job.php:849
3309
  msgid "Step aborted: too many attempts!"
3310
  msgstr ""
3311
 
3312
- #: ../inc/class-job.php:934
3313
  #, php-format
3314
  msgid "Restart after %1$d seconds."
3315
  msgstr ""
3316
 
3317
- #: ../inc/class-job.php:1139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3318
  #, php-format
3319
- msgid "Signal \"%s\" is sent to script!"
3320
  msgstr ""
3321
 
3322
- #: ../inc/class-job.php:1154 ../inc/class-job.php:1167
3323
  #, php-format
3324
  msgid "System: %s"
3325
  msgstr ""
3326
 
3327
- #: ../inc/class-job.php:1182
3328
  #, php-format
3329
  msgid "Exception caught in %1$s: %2$s"
3330
  msgstr ""
3331
 
3332
- #: ../inc/class-job.php:1265
3333
  msgid "DEPRECATED:"
3334
  msgstr ""
3335
 
3336
- #: ../inc/class-job.php:1268
3337
  msgid "STRICT NOTICE:"
3338
  msgstr ""
3339
 
3340
- #: ../inc/class-job.php:1273
3341
  msgid "RECOVERABLE ERROR:"
3342
  msgstr ""
3343
 
3344
- #: ../inc/class-job.php:1434
3345
  msgid "Cannot write progress to working file. Job will be aborted."
3346
  msgstr ""
3347
 
3348
- #: ../inc/class-job.php:1449
3349
  msgid "Aborted by user!"
3350
  msgstr ""
3351
 
3352
- #: ../inc/class-job.php:1477
3353
  #, php-format
3354
  msgid "One old log deleted"
3355
  msgid_plural "%d old logs deleted"
3356
  msgstr[0] ""
3357
  msgstr[1] ""
3358
 
3359
- #: ../inc/class-job.php:1486
3360
  #, php-format
3361
  msgid ""
3362
  "Job finished with warnings in %s seconds. Please resolve them for correct "
3363
  "execution."
3364
  msgstr ""
3365
 
3366
- #: ../inc/class-job.php:1535
3367
  msgid "SUCCESSFUL"
3368
  msgstr ""
3369
 
3370
- #: ../inc/class-job.php:1538
3371
  msgid "WARNING"
3372
  msgstr ""
3373
 
3374
- #: ../inc/class-job.php:1542
3375
  msgid "ERROR"
3376
  msgstr ""
3377
 
3378
- #: ../inc/class-job.php:1546
3379
  #, php-format
3380
  msgid "[%3$s] BackWPup log %1$s: %2$s"
3381
  msgstr ""
3382
 
3383
- #: ../inc/class-job.php:1917
3384
  #, php-format
3385
  msgctxt "Folder name"
3386
  msgid "Folder %s not exists"
3387
  msgstr ""
3388
 
3389
- #: ../inc/class-job.php:1923
3390
  #, php-format
3391
  msgctxt "Folder name"
3392
  msgid "Folder %s not readable"
3393
  msgstr ""
3394
 
3395
- #: ../inc/class-job.php:1943
3396
  #, php-format
3397
  msgid "Link \"%s\" not following."
3398
  msgstr ""
3399
 
3400
- #: ../inc/class-job.php:1945
3401
  #, php-format
3402
  msgid "File \"%s\" is not readable!"
3403
  msgstr ""
3404
 
3405
- #: ../inc/class-job.php:1949
3406
  #, php-format
3407
  msgid ""
3408
  "File size of “%s” cannot be retrieved. File might be too large and will not "
3409
  "be added to queue."
3410
  msgstr ""
3411
 
3412
- #: ../inc/class-job.php:1969
3413
  #, php-format
3414
  msgid "%d. Trying to generate a manifest file&#160;&hellip;"
3415
  msgstr ""
3416
 
3417
- #: ../inc/class-job.php:2025
3418
  msgid "You may have noticed the manifest.json file in this archive."
3419
  msgstr ""
3420
 
3421
- #: ../inc/class-job.php:2026
3422
  msgid "manifest.json might be needed for later restoring a backup from this archive."
3423
  msgstr ""
3424
 
3425
- #: ../inc/class-job.php:2027
3426
  msgid ""
3427
  "Please leave manifest.json untouched and in place. Otherwise it is safe to "
3428
  "be ignored."
3429
  msgstr ""
3430
 
3431
- #: ../inc/class-job.php:2037
3432
  #, php-format
3433
  msgid "Added manifest.json file with %1$s to backup file list."
3434
  msgstr ""
3435
 
3436
- #: ../inc/class-job.php:2067
3437
  #, php-format
3438
  msgid "%d. Trying to create backup archive &hellip;"
3439
  msgstr ""
3440
 
3441
- #: ../inc/class-job.php:2075
3442
  #, php-format
3443
  msgctxt "Archive compression method"
3444
  msgid "Compressing files as %s. Please be patient, this may take a moment."
3445
  msgstr ""
3446
 
3447
- #: ../inc/class-job.php:2082
3448
  msgid "Adding Extra files to Archive"
3449
  msgstr ""
3450
 
3451
- #: ../inc/class-job.php:2094 ../inc/class-job.php:2154
3452
  msgid "Cannot create backup archive correctly. Aborting creation."
3453
  msgstr ""
3454
 
3455
- #: ../inc/class-job.php:2110
3456
  #, php-format
3457
  msgid "Archiving Folder: %s"
3458
  msgstr ""
3459
 
3460
- #: ../inc/class-job.php:2164
3461
  msgid "Backup archive created."
3462
  msgstr ""
3463
 
3464
- #: ../inc/class-job.php:2178
3465
  msgid ""
3466
  "The Backup archive will be too large for file operations with this PHP "
3467
  "Version. You might want to consider splitting the backup job in multiple "
3468
  "jobs with less files each."
3469
  msgstr ""
3470
 
3471
- #: ../inc/class-job.php:2181
3472
  #, php-format
3473
  msgid "Archive size is %s."
3474
  msgstr ""
3475
 
3476
- #: ../inc/class-job.php:2184
3477
  #, php-format
3478
  msgid "%1$d Files with %2$s in Archive."
3479
  msgstr ""
@@ -3634,7 +3661,7 @@ msgid "Added plugin list file \"%1$s\" with %2$s to backup file list."
3634
  msgstr ""
3635
 
3636
  #: ../inc/class-page-editjob.php:97 ../inc/class-page-editjob.php:471 ..
3637
- #: /inc/class-option.php:110
3638
  msgid "New Job"
3639
  msgstr ""
3640
 
@@ -4080,9 +4107,8 @@ msgstr ""
4080
  msgid "Account Name:"
4081
  msgstr ""
4082
 
4083
- #: ../inc/pro/class-destination-msazure.php:19 ../inc/pro/class-destination-s3-v1.
4084
- #: php:37 ../inc/pro/class-destination-s3.php:39 ../inc/pro/class-destination-
4085
- #: glacier.php:177
4086
  msgid "Access Key:"
4087
  msgstr ""
4088
 
@@ -4617,80 +4643,6 @@ msgstr ""
4617
  msgid "BackWPup config imported"
4618
  msgstr ""
4619
 
4620
- #: ../inc/pro/class-destination-s3-v1.php:17 ../inc/pro/class-destination-s3.php:17
4621
- msgid "Select a S3 service:"
4622
- msgstr ""
4623
-
4624
- #: ../inc/pro/class-destination-s3-v1.php:30
4625
- msgid "Hosteurope Cloud Storage"
4626
- msgstr ""
4627
-
4628
- #: ../inc/pro/class-destination-s3-v1.php:34 ../inc/pro/class-destination-s3.php:36
4629
- msgid "or set an S3 Server URL:"
4630
- msgstr ""
4631
-
4632
- #: ../inc/pro/class-destination-s3-v1.php:40 ../inc/pro/class-destination-s3.php:
4633
- #: 42 ../inc/pro/class-destination-glacier.php:179
4634
- msgid "Secret Key:"
4635
- msgstr ""
4636
-
4637
- #: ../inc/pro/class-destination-s3-v1.php:43 ../inc/pro/class-destination-s3.php:45
4638
- msgid "Bucket:"
4639
- msgstr ""
4640
-
4641
- #: ../inc/pro/class-destination-s3-v1.php:53 ../inc/pro/class-destination-s3.php:55
4642
- msgid "New Bucket:"
4643
- msgstr ""
4644
-
4645
- #: ../inc/pro/class-destination-s3-v1.php:55 ../inc/pro/class-destination-s3.php:57
4646
- msgid "Folder in bucket:"
4647
- msgstr ""
4648
-
4649
- #: ../inc/pro/class-destination-s3-v1.php:147 ../inc/pro/class-destination-s3.php:
4650
- #: 145
4651
- #, php-format
4652
- msgid "Bucket %1$s created in %2$s."
4653
- msgstr ""
4654
-
4655
- #: ../inc/pro/class-destination-s3-v1.php:171 ../inc/pro/class-destination-s3.php:
4656
- #: 169
4657
- #, php-format
4658
- msgid "%d. Trying to sync files to S3 Service&#160;&hellip;"
4659
- msgstr ""
4660
-
4661
- #: ../inc/pro/class-destination-s3-v1.php:210 ../inc/pro/class-destination-s3.php:
4662
- #: 203
4663
- msgid "Retrieving file list from S3."
4664
- msgstr ""
4665
-
4666
- #: ../inc/pro/class-destination-s3-v1.php:266 ../inc/pro/class-destination-s3.php:
4667
- #: 265
4668
- msgid "Upload changed files to S3."
4669
- msgstr ""
4670
-
4671
- #: ../inc/pro/class-destination-s3-v1.php:278 ../inc/pro/class-destination-s3.php:
4672
- #: 280
4673
- #, php-format
4674
- msgid "File %s uploaded to S3."
4675
- msgstr ""
4676
-
4677
- #: ../inc/pro/class-destination-s3-v1.php:303 ../inc/pro/class-destination-s3.php:
4678
- #: 308
4679
- #, php-format
4680
- msgid "Extra file %s uploaded to S3."
4681
- msgstr ""
4682
-
4683
- #: ../inc/pro/class-destination-s3-v1.php:316 ../inc/pro/class-destination-s3.php:
4684
- #: 321
4685
- msgid "Delete nonexistent files on S3"
4686
- msgstr ""
4687
-
4688
- #: ../inc/pro/class-destination-s3-v1.php:319 ../inc/pro/class-destination-s3.php:
4689
- #: 328
4690
- #, php-format
4691
- msgid "File %s deleted from S3."
4692
- msgstr ""
4693
-
4694
  #: ../inc/pro/class-destination-sugarsync.php:24 ../inc/pro/class-destination-
4695
  #: sugarsync.php:82
4696
  msgid "Sugarsync authenticate!"
@@ -4848,6 +4800,68 @@ msgstr ""
4848
  msgid "Folder on server:"
4849
  msgstr ""
4850
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4851
  #: ../inc/pro/class-destination-rsc.php:26
4852
  msgid "API Key:"
4853
  msgstr ""
@@ -4893,32 +4907,6 @@ msgstr ""
4893
  msgid "File %s deleted from Rackspace Cloud."
4894
  msgstr ""
4895
 
4896
- #: ../inc/pro/class-marketpress-documentation.php:177
4897
- msgid "Loading Menu ..."
4898
- msgstr ""
4899
-
4900
- #: ../inc/pro/class-marketpress-documentation.php:220 ../inc/pro/class-
4901
- #: marketpress-documentation.php:336
4902
- #, php-format
4903
- msgctxt "%s = Remote Code"
4904
- msgid "Could not connect to remote host, code %d. Please try again later."
4905
- msgstr ""
4906
-
4907
- #: ../inc/pro/class-marketpress-documentation.php:232 ../inc/pro/class-
4908
- #: marketpress-documentation.php:348
4909
- msgid "Could not find content for this page. Please try again later."
4910
- msgstr ""
4911
-
4912
- #: ../inc/pro/class-marketpress-documentation.php:238 ../inc/pro/class-
4913
- #: marketpress-documentation.php:353
4914
- msgid "Could not connect to remote host. Please try again later."
4915
- msgstr ""
4916
-
4917
- #: ../inc/pro/class-marketpress-documentation.php:284 ../inc/pro/class-
4918
- #: marketpress-documentation.php:292
4919
- msgid "Loading Content ..."
4920
- msgstr ""
4921
-
4922
  #: ../inc/pro/class-jobtype-dbcheck.php:27
4923
  msgid "Check only WordPress Database tables"
4924
  msgstr ""
@@ -5202,7 +5190,7 @@ msgstr ""
5202
  msgid "Archive ID: %s"
5203
  msgstr ""
5204
 
5205
- #: ../inc/pro/class-destination-glacier.php:379 ../inc/pro/class-pro.php:108
5206
  msgid "Glacier"
5207
  msgstr ""
5208
 
@@ -5445,11 +5433,11 @@ msgstr ""
5445
  msgid "Custom configuration"
5446
  msgstr ""
5447
 
5448
- #: ../inc/pro/class-pro.php:127
5449
  msgid "GDrive"
5450
  msgstr ""
5451
 
5452
- #: ../inc/pro/class-pro.php:180 ../inc/pro/class-pro.php:180 ../inc/pro/class-pro.
5453
- #: php:216
5454
  msgid "Wizards"
5455
  msgstr ""
6
  "Report-Msgid-Bugs-To: \n"
7
  "POT-Creation-Date: Tue Aug 25 2015 08:53:55 GMT+0200 (Mitteleuropäische "
8
  "Sommerzeit)\n"
9
+ "POT-Revision-Date: Tue May 03 2016 11:45:42 GMT+0200 (Mitteleuropäische "
10
+ "Sommerzeit)\n"
11
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
31
  msgstr ""
32
 
33
  #. URI of the plugin
34
+ msgid "http://backwpup.com"
35
  msgstr ""
36
 
37
  #. Description of the plugin
46
  msgid "http://inpsyde.com"
47
  msgstr ""
48
 
49
+ #: ../backwpup.php:281 ../inc/class-page-backups.php:271
50
  msgid "Folder"
51
  msgstr ""
52
 
53
+ #: ../backwpup.php:282
54
  msgid "Backup to Folder"
55
  msgstr ""
56
 
57
+ #: ../backwpup.php:297
58
  msgid "Email"
59
  msgstr ""
60
 
61
+ #: ../backwpup.php:298
62
  msgid "Backup sent via email"
63
  msgstr ""
64
 
65
+ #: ../backwpup.php:313
66
  msgid "FTP"
67
  msgstr ""
68
 
69
+ #: ../backwpup.php:314
70
  msgid "Backup to FTP"
71
  msgstr ""
72
 
73
+ #: ../backwpup.php:329 ../inc/class-destination-dropbox.php:307
74
  msgid "Dropbox"
75
  msgstr ""
76
 
77
+ #: ../backwpup.php:330 ../inc/class-page-about.php:523
78
  msgid "Backup to Dropbox"
79
  msgstr ""
80
 
81
+ #: ../backwpup.php:345 ../inc/class-destination-s3.php:76
 
82
  msgid "S3 Service"
83
  msgstr ""
84
 
85
+ #: ../backwpup.php:346
86
  msgid "Backup to an S3 Service"
87
  msgstr ""
88
 
89
+ #: ../backwpup.php:364
90
  msgid "MS Azure"
91
  msgstr ""
92
 
93
+ #: ../backwpup.php:365
94
  msgid "Backup to Microsoft Azure (Blob)"
95
  msgstr ""
96
 
97
+ #: ../backwpup.php:380
98
  msgid "RSC"
99
  msgstr ""
100
 
101
+ #: ../backwpup.php:381 ../inc/class-page-about.php:528
102
  msgid "Backup to Rackspace Cloud Files"
103
  msgstr ""
104
 
105
+ #: ../backwpup.php:398
106
  msgid "SugarSync"
107
  msgstr ""
108
 
109
+ #: ../backwpup.php:399 ../inc/class-page-about.php:543
110
  msgid "Backup to SugarSync"
111
  msgstr ""
112
 
113
+ #: ../backwpup.php:418
114
  #, php-format
115
  msgid "PHP Version %1$s is to low, you need Version %2$s or above."
116
  msgstr ""
117
 
118
+ #: ../backwpup.php:425
119
  #, php-format
120
  msgid "Missing function \"%s\"."
121
  msgstr ""
122
 
123
+ #: ../backwpup.php:434
124
  #, php-format
125
  msgid "Missing class \"%s\"."
126
  msgstr ""
135
  msgid "Delete"
136
  msgstr ""
137
 
138
+ #: ../inc/class-page-logs.php:136 ../inc/class-page-backwpup.php:282 ../inc/class-
139
+ #: page-backwpup.php:350 ../inc/class-page-backups.php:269
140
  msgid "Time"
141
  msgstr ""
142
 
143
+ #: ../inc/class-page-logs.php:137 ../inc/class-page-backwpup.php:282 ../inc/class-
144
+ #: page-backwpup.php:351
145
  msgid "Job"
146
  msgstr ""
147
 
162
  msgid "Runtime"
163
  msgstr ""
164
 
165
+ #: ../inc/class-page-logs.php:164 ../inc/class-page-backwpup.php:311 ../inc/class-
166
+ #: page-backwpup.php:388 ../inc/class-page-jobs.php:318 ../inc/class-page-backups.
167
  #: php:361
168
  #, php-format
169
  msgid "%1$s at %2$s"
206
  msgstr ""
207
 
208
  #: ../inc/class-page-logs.php:257 ../inc/class-destination-ftp.php:86 ..
209
+ #: /inc/class-page-settings.php:453
210
  msgid "seconds"
211
  msgstr ""
212
 
213
+ #: ../inc/class-page-logs.php:328 ../inc/class-admin.php:186 ../inc/class-admin.
214
+ #: php:186 ../inc/class-adminbar.php:102 ../inc/class-page-settings.php:115
215
  msgid "Logs"
216
  msgstr ""
217
 
259
  msgid "Folder in container"
260
  msgstr ""
261
 
262
+ #: ../inc/class-destination-msazure.php:76 ../inc/class-destination-s3.php:163 ..
263
+ #: /inc/class-destination-rsc.php:105 ../inc/pro/class-destination-glacier.php:95
 
264
  msgid "File deletion"
265
  msgstr ""
266
 
267
+ #: ../inc/class-destination-msazure.php:83 ../inc/class-destination-sugarsync.php:
268
+ #: 98 ../inc/class-destination-folder.php:46 ../inc/class-destination-dropbox.php:
269
+ #: 125 ../inc/class-destination-ftp.php:66 ../inc/class-destination-s3.php:170 ..
270
+ #: /inc/class-destination-rsc.php:112 ../inc/pro/class-destination-msazure.php:45
271
+ #: ../inc/pro/class-destination-folder.php:43 ../inc/pro/class-destination-
 
272
  #: dropbox.php:52 ../inc/pro/class-destination-s3.php:73 ../inc/pro/class-
273
  #: destination-rsc.php:65 ../inc/pro/class-destination-gdrive.php:78 ..
274
  #: /inc/pro/class-destination-gdrive.php:303
275
  msgid "Number of files to keep in folder."
276
  msgstr ""
277
 
278
+ #: ../inc/class-destination-msazure.php:88 ../inc/class-destination-sugarsync.php:
279
+ #: 103 ../inc/class-destination-folder.php:51 ../inc/class-destination-dropbox.
280
+ #: php:130 ../inc/class-destination-ftp.php:71 ../inc/class-destination-s3.php:
281
+ #: 175 ../inc/class-destination-rsc.php:117 ../inc/pro/class-destination-msazure.
282
+ #: php:56 ../inc/pro/class-destination-sugarsync.php:65 ../inc/pro/class-
 
283
  #: destination-folder.php:48 ../inc/pro/class-destination-dropbox.php:55 ..
284
  #: /inc/pro/class-destination-ftp.php:44 ../inc/pro/class-destination-s3.php:78 ..
285
  #: /inc/pro/class-destination-rsc.php:70 ../inc/pro/class-destination-gdrive.php:
352
  msgid "Missing account name!"
353
  msgstr ""
354
 
355
+ #: ../inc/class-destination-msazure.php:443 ../inc/class-destination-s3.php:714 ..
356
+ #: /inc/pro/class-destination-glacier.php:568
 
357
  msgid "Missing access key!"
358
  msgstr ""
359
 
383
  msgstr ""
384
 
385
  #: ../inc/class-jobtype-dbdump.php:67 ../inc/class-jobtype-dbdump.php:103 ..
386
+ #: /inc/class-page-backwpup.php:331 ../inc/class-page-backwpup.php:396 ..
387
+ #: /inc/class-destination-email.php:106 ../inc/class-page-settings.php:313 ..
388
  #: /inc/class-jobtype-wpexp.php:73 ../inc/class-jobtype-wpplugin.php:57 ..
389
  #: /inc/pro/class-jobtype-dbdump.php:157 ../inc/pro/class-jobtype-dbdump.php:205
390
  msgid "none"
438
  msgid "Database backup done!"
439
  msgstr ""
440
 
441
+ #: ../inc/class-page-about.php:364
442
  msgid "Welcome to BackWPup Pro"
443
  msgstr ""
444
 
445
+ #: ../inc/class-page-about.php:365 ../inc/class-page-backwpup.php:75
446
  msgid ""
447
  "BackWPup’s job wizards make planning and scheduling your backup jobs a "
448
  "breeze."
449
  msgstr ""
450
 
451
+ #: ../inc/class-page-about.php:366 ../inc/class-page-about.php:376
452
  msgid ""
453
  "Use your backup archives to save your entire WordPress installation "
454
  "including <code>/wp-content/</code>. Push them to an external storage "
459
  "backup files."
460
  msgstr ""
461
 
462
+ #: ../inc/class-page-about.php:367
463
  #, php-format
464
  msgid ""
465
  "Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use "
466
  "the wizards</a> or plan your backup in expert mode."
467
  msgstr ""
468
 
469
+ #: ../inc/class-page-about.php:374
470
  msgid "Welcome to BackWPup"
471
  msgstr ""
472
 
473
+ #: ../inc/class-page-about.php:377
474
  msgid ""
475
  "Ready to set up a backup job? Use one of the wizards to plan what you want "
476
  "to save."
477
  msgstr ""
478
 
479
+ #: ../inc/class-page-about.php:394
480
  msgid "Please activate your license"
481
  msgstr ""
482
 
483
+ #: ../inc/class-page-about.php:395
484
  msgid ""
485
  "Please go to your plugin page and active the license to have the autoupdates "
486
  "enabled."
487
  msgstr ""
488
 
489
+ #: ../inc/class-page-about.php:404
490
  msgid "Save your database"
491
  msgstr ""
492
 
493
+ #: ../inc/class-page-about.php:407
494
  msgid "Save your database regularly"
495
  msgstr ""
496
 
497
+ #: ../inc/class-page-about.php:408
498
  #, php-format
499
  msgid ""
500
  "With BackWPup you can schedule the database backup to run automatically. "
503
  "also an option to repair and optimize the database after each backup."
504
  msgstr ""
505
 
506
+ #: ../inc/class-page-about.php:413 ../inc/class-page-about.php:417
507
  msgid "WordPress XML Export"
508
  msgstr ""
509
 
510
+ #: ../inc/class-page-about.php:414
511
  msgid ""
512
  "You can choose the built-in WordPress export format in addition or exclusive "
513
  "to save your data. This works in automated backups too of course. The "
515
  "WordPress importer."
516
  msgstr ""
517
 
518
+ #: ../inc/class-page-about.php:422
519
  msgid "Save all data from the webserver"
520
  msgstr ""
521
 
522
+ #: ../inc/class-page-about.php:425
523
  msgid "Save all files"
524
  msgstr ""
525
 
526
+ #: ../inc/class-page-about.php:426
527
  #, php-format
528
  msgid ""
529
  "You can backup all your attachments, also all system files, plugins and "
531
  "backup copy of your file system only when files are changed."
532
  msgstr ""
533
 
534
+ #: ../inc/class-page-about.php:431 ../inc/class-page-about.php:435
535
  msgid "Security!"
536
  msgstr ""
537
 
538
+ #: ../inc/class-page-about.php:432
539
  msgid ""
540
  "By default everything is encrypted: connections to external services, local "
541
  "files and access to directories."
542
  msgstr ""
543
 
544
+ #: ../inc/class-page-about.php:440 ../inc/class-page-about.php:443
545
  msgid "Cloud Support"
546
  msgstr ""
547
 
548
+ #: ../inc/class-page-about.php:444
549
  msgid ""
550
  "BackWPup supports multiple cloud services in parallel. This ensures backups "
551
  "are redundant."
552
  msgstr ""
553
 
554
+ #: ../inc/class-page-about.php:450
555
  msgid "Features / differences between Free and Pro"
556
  msgstr ""
557
 
558
+ #: ../inc/class-page-about.php:453
559
  msgid "Features"
560
  msgstr ""
561
 
562
+ #: ../inc/class-page-about.php:454
563
  msgid "FREE"
564
  msgstr ""
565
 
566
+ #: ../inc/class-page-about.php:455
567
  msgid "PRO"
568
  msgstr ""
569
 
570
+ #: ../inc/class-page-about.php:458
571
  msgid "Complete database backup"
572
  msgstr ""
573
 
574
+ #: ../inc/class-page-about.php:463
575
  msgid "Complete file backup"
576
  msgstr ""
577
 
578
+ #: ../inc/class-page-about.php:468
579
  msgid "Database check"
580
  msgstr ""
581
 
582
+ #: ../inc/class-page-about.php:473
583
  msgid "Data compression"
584
  msgstr ""
585
 
586
+ #: ../inc/class-page-about.php:478 ../inc/class-jobtype-wpexp.php:14
587
  msgid "WordPress XML export"
588
  msgstr ""
589
 
590
+ #: ../inc/class-page-about.php:483
591
  msgid "List of installed plugins"
592
  msgstr ""
593
 
594
+ #: ../inc/class-page-about.php:488
595
  msgid "Backup archives management"
596
  msgstr ""
597
 
598
+ #: ../inc/class-page-about.php:493
599
  msgid "Log file management"
600
  msgstr ""
601
 
602
+ #: ../inc/class-page-about.php:498
603
  msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
604
  msgstr ""
605
 
606
+ #: ../inc/class-page-about.php:503
607
  msgid "Log report via email"
608
  msgstr ""
609
 
610
+ #: ../inc/class-page-about.php:508
611
  msgid "Backup to Microsoft Azure"
612
  msgstr ""
613
 
614
+ #: ../inc/class-page-about.php:513
615
  msgid "Backup as email"
616
  msgstr ""
617
 
618
+ #: ../inc/class-page-about.php:518
619
  msgid ""
620
  "Backup to S3 services <small>(Amazon, Google Storage, Hosteurope and "
621
  "more)</small>"
622
  msgstr ""
623
 
624
+ #: ../inc/class-page-about.php:533
625
  msgid "Backup to FTP server"
626
  msgstr ""
627
 
628
+ #: ../inc/class-page-about.php:538
629
  msgid "Backup to your web space"
630
  msgstr ""
631
 
632
+ #: ../inc/class-page-about.php:548 ../inc/pro/class-pro.php:123
633
  msgid "Backup to Google Drive"
634
  msgstr ""
635
 
636
+ #: ../inc/class-page-about.php:553 ../inc/pro/class-pro.php:104
637
  msgid "Backup to Amazon Glacier"
638
  msgstr ""
639
 
640
+ #: ../inc/class-page-about.php:558
641
  msgid "Custom API keys for DropBox and SugarSync"
642
  msgstr ""
643
 
644
+ #: ../inc/class-page-about.php:563
645
  msgid "XML database backup as PHPMyAdmin schema"
646
  msgstr ""
647
 
648
+ #: ../inc/class-page-about.php:568
649
  msgid "Database backup as mysqldump per command line"
650
  msgstr ""
651
 
652
+ #: ../inc/class-page-about.php:573
653
  msgid "Database backup for additional MySQL databases"
654
  msgstr ""
655
 
656
+ #: ../inc/class-page-about.php:578
657
  msgid "Import and export job settings as XML"
658
  msgstr ""
659
 
660
+ #: ../inc/class-page-about.php:583
661
  msgid "Wizard for system tests"
662
  msgstr ""
663
 
664
+ #: ../inc/class-page-about.php:588
665
  msgid "Wizard for scheduled backup jobs"
666
  msgstr ""
667
 
668
+ #: ../inc/class-page-about.php:593
669
  msgid "Wizard to import settings and backup jobs"
670
  msgstr ""
671
 
672
+ #: ../inc/class-page-about.php:598
673
  msgid "Differential backup of changed directories to Dropbox"
674
  msgstr ""
675
 
676
+ #: ../inc/class-page-about.php:603
677
  msgid "Differential backup of changed directories to Rackspace Cloud Files"
678
  msgstr ""
679
 
680
+ #: ../inc/class-page-about.php:608
681
  msgid "Differential backup of changed directories to S3"
682
  msgstr ""
683
 
684
+ #: ../inc/class-page-about.php:613
685
  msgid "Differential backup of changed directories to MS Azure"
686
  msgstr ""
687
 
688
+ #: ../inc/class-page-about.php:618
689
  msgid "<strong>Premium support</strong>"
690
  msgstr ""
691
 
692
+ #: ../inc/class-page-about.php:623
 
 
 
 
693
  msgid "<strong>Automatic update from MarketPress</strong>"
694
  msgstr ""
695
 
696
+ #: ../inc/class-page-about.php:630
 
 
 
 
697
  msgid "GET PRO"
698
  msgstr ""
699
 
802
 
803
  #: ../inc/class-page-backwpup.php:127
804
  msgctxt "BackWPup News RSS Feed URL"
805
+ msgid "http://marketpress.com/news/tag/backwpup/feed/"
806
  msgstr ""
807
 
808
  #: ../inc/class-page-backwpup.php:130
824
  msgid "Start wizard"
825
  msgstr ""
826
 
827
+ #: ../inc/class-page-backwpup.php:217
828
  msgid "Video: Introduction"
829
  msgstr ""
830
 
831
+ #: ../inc/class-page-backwpup.php:222
832
  msgid "Video: Settings"
833
  msgstr ""
834
 
835
+ #: ../inc/class-page-backwpup.php:227
836
  msgid "Video: Daily Backups"
837
  msgstr ""
838
 
839
+ #: ../inc/class-page-backwpup.php:232
840
  msgid "Video: Creating Full Backups"
841
  msgstr ""
842
 
843
+ #: ../inc/class-page-backwpup.php:237
844
  msgid "Video: Restoring Backups"
845
  msgstr ""
846
 
847
+ #: ../inc/class-page-backwpup.php:252
848
  msgctxt "Pro teaser box"
849
  msgid "Thank you for using BackWPup!"
850
  msgstr ""
851
 
852
+ #: ../inc/class-page-backwpup.php:255
853
  msgctxt "Pro teaser box"
854
  msgid "Get access to:"
855
  msgstr ""
856
 
857
+ #: ../inc/class-page-backwpup.php:257
858
  msgctxt "Pro teaser box"
859
  msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
860
  msgstr ""
861
 
862
+ #: ../inc/class-page-backwpup.php:258
863
  msgctxt "Pro teaser box"
864
  msgid "Differential backups to Google Drive and other cloud storage service."
865
  msgstr ""
866
 
867
+ #: ../inc/class-page-backwpup.php:259
868
  msgctxt "Pro teaser box"
869
  msgid "Easy-peasy wizards to create and schedule backup jobs."
870
  msgstr ""
871
 
872
+ #: ../inc/class-page-backwpup.php:260
873
  msgctxt "Pro teaser box, link text"
874
  msgid "And more…"
875
  msgstr ""
876
 
877
+ #: ../inc/class-page-backwpup.php:262
878
  msgctxt "Pro teaser box, link title"
879
  msgid "Get BackWPup Pro now"
880
  msgstr ""
881
 
882
+ #: ../inc/class-page-backwpup.php:262
883
  msgctxt "Pro teaser box, link text"
884
  msgid "Get BackWPup Pro now"
885
  msgstr ""
886
 
887
+ #: ../inc/class-page-backwpup.php:280
888
  msgid "Last logs"
889
  msgstr ""
890
 
891
+ #: ../inc/class-page-backwpup.php:282
892
  msgid "Result"
893
  msgstr ""
894
 
895
+ #: ../inc/class-page-backwpup.php:316
896
  #, php-format
897
  msgid "%d ERROR"
898
  msgstr ""
899
 
900
+ #: ../inc/class-page-backwpup.php:319
901
  #, php-format
902
  msgid "%d WARNING"
903
  msgstr ""
904
 
905
+ #: ../inc/class-page-backwpup.php:322
906
  msgid "OK"
907
  msgstr ""
908
 
909
+ #: ../inc/class-page-backwpup.php:347
910
  msgid "Next scheduled jobs"
911
  msgstr ""
912
 
913
+ #: ../inc/class-page-backwpup.php:374
914
  #, php-format
915
  msgid "working since %d seconds"
916
  msgstr ""
917
 
918
+ #: ../inc/class-page-backwpup.php:376 ../inc/class-page-jobs.php:608
919
  msgid "Abort"
920
  msgstr ""
921
 
922
+ #: ../inc/class-page-backwpup.php:390 ../inc/class-page-jobs.php:282 ../inc/class-
923
+ #: page-jobs.php:291 ../inc/class-job.php:345
924
  msgid "Not scheduled!"
925
  msgstr ""
926
 
927
+ #: ../inc/class-page-backwpup.php:392
928
  msgid "Edit Job"
929
  msgstr ""
930
 
931
+ #: ../inc/class-jobtype-file.php:13
932
  msgid "Files"
933
  msgstr ""
934
 
935
+ #: ../inc/class-jobtype-file.php:14
936
  msgid "File backup"
937
  msgstr ""
938
 
939
+ #: ../inc/class-jobtype-file.php:71
940
  msgid "Folders to backup"
941
  msgstr ""
942
 
943
+ #: ../inc/class-jobtype-file.php:75
944
  msgid "Backup WordPress install folder"
945
  msgstr ""
946
 
947
+ #: ../inc/class-jobtype-file.php:86 ../inc/class-jobtype-file.php:123 ..
948
+ #: /inc/class-jobtype-file.php:160 ../inc/class-jobtype-file.php:197 ../inc/class-
949
+ #: jobtype-file.php:234
950
  #, php-format
951
  msgid "Path as set by user (symlink?): %s"
952
  msgstr ""
953
 
954
+ #: ../inc/class-jobtype-file.php:89 ../inc/class-jobtype-file.php:126 ..
955
+ #: /inc/class-jobtype-file.php:163 ../inc/class-jobtype-file.php:200 ../inc/class-
956
+ #: jobtype-file.php:237
957
  msgid "Exclude:"
958
  msgstr ""
959
 
960
+ #: ../inc/class-jobtype-file.php:100 ../inc/class-jobtype-file.php:137 ..
961
+ #: /inc/class-jobtype-file.php:174 ../inc/class-jobtype-file.php:211 ../inc/class-
962
+ #: jobtype-file.php:248
963
  msgid "Excluded by .donotbackup file!"
964
  msgstr ""
965
 
966
+ #: ../inc/class-jobtype-file.php:112
967
  msgid "Backup content folder"
968
  msgstr ""
969
 
970
+ #: ../inc/class-jobtype-file.php:149
971
  msgid "Backup plugins"
972
  msgstr ""
973
 
974
+ #: ../inc/class-jobtype-file.php:186
975
  msgid "Backup themes"
976
  msgstr ""
977
 
978
+ #: ../inc/class-jobtype-file.php:223 ../inc/pro/class-wizard-job.php:745 ..
979
  #: /inc/pro/class-wizard-job.php:746
980
  msgid "Backup uploads folder"
981
  msgstr ""
982
 
983
+ #: ../inc/class-jobtype-file.php:260
984
  msgid "Extra folders to backup"
985
  msgstr ""
986
 
987
+ #: ../inc/class-jobtype-file.php:263
988
  msgid ""
989
  "Separate folder names with a line-break or a comma. Folders must be set with "
990
  "their absolute path!"
991
  msgstr ""
992
 
993
+ #: ../inc/class-jobtype-file.php:268
994
  msgid "Exclude from backup"
995
  msgstr ""
996
 
997
+ #: ../inc/class-jobtype-file.php:272
998
  msgid "Thumbnails in uploads"
999
  msgstr ""
1000
 
1001
+ #: ../inc/class-jobtype-file.php:274
1002
  msgid "Don't backup thumbnails from the site's uploads folder."
1003
  msgstr ""
1004
 
1005
+ #: ../inc/class-jobtype-file.php:278
1006
  msgid "Exclude files/folders from backup"
1007
  msgstr ""
1008
 
1009
+ #: ../inc/class-jobtype-file.php:281
1010
  msgid ""
1011
  "Separate file / folder name parts with a line-break or a comma. For example "
1012
  "/logs/,.log,.tmp"
1013
  msgstr ""
1014
 
1015
+ #: ../inc/class-jobtype-file.php:286
1016
  msgid "Special options"
1017
  msgstr ""
1018
 
1019
+ #: ../inc/class-jobtype-file.php:290
1020
  msgid "Include special files"
1021
  msgstr ""
1022
 
1023
+ #: ../inc/class-jobtype-file.php:292
1024
  msgid ""
1025
  "Backup wp-config.php, robots.txt, nginx.conf, .htaccess, .htpasswd and "
1026
  "favicon.ico from root if it is not included in backup."
1027
  msgstr ""
1028
 
1029
+ #: ../inc/class-jobtype-file.php:296
1030
  msgid "Use one folder above as WP install folder"
1031
  msgstr ""
1032
 
1033
+ #: ../inc/class-jobtype-file.php:299
1034
  msgid ""
1035
  "Use one folder above as WordPress install folder! That can be helpful, if "
1036
  "you would backup files and folder that are not in the WordPress installation "
1039
  "Directory</a>\" installation. Excludes must be configured again."
1040
  msgstr ""
1041
 
1042
+ #: ../inc/class-jobtype-file.php:384
1043
  #, php-format
1044
  msgid "%d. Trying to make a list of folders to back up&#160;&hellip;"
1045
  msgstr ""
1046
 
1047
+ #: ../inc/class-jobtype-file.php:502 ../inc/class-jobtype-file.php:506 ..
1048
+ #: /inc/class-jobtype-file.php:511 ../inc/class-jobtype-file.php:515 ../inc/class-
1049
+ #: jobtype-file.php:519 ../inc/class-jobtype-file.php:523 ../inc/class-jobtype-
1050
+ #: file.php:527
1051
  #, php-format
1052
  msgid "Added \"%s\" to backup file list"
1053
  msgstr ""
1054
 
1055
+ #: ../inc/class-jobtype-file.php:532
1056
  msgid "No files/folder for the backup."
1057
  msgstr ""
1058
 
1059
+ #: ../inc/class-jobtype-file.php:534
1060
  #, php-format
1061
  msgid "%1$d folders to backup."
1062
  msgstr ""
1063
 
1064
+ #: ../inc/class-jobtype-file.php:580
1065
  #, php-format
1066
  msgid "Folder \"%s\" is not readable!"
1067
  msgstr ""
1082
  msgid "Nothing to abort!"
1083
  msgstr ""
1084
 
1085
+ #: ../inc/class-wp-cli.php:59 ../inc/class-page-jobs.php:471
1086
  msgid "Job will be terminated."
1087
  msgstr ""
1088
 
1090
  msgid "No job running"
1091
  msgstr ""
1092
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1093
  #: ../inc/class-create-archive.php:64
1094
  msgid "The file name of an archive cannot be empty."
1095
  msgstr ""
1218
  "the backup job in multiple jobs with less files each."
1219
  msgstr ""
1220
 
1221
+ #: ../inc/class-admin.php:127 ../inc/class-help.php:24
1222
+ msgid "http://docs.backwpup.com"
1223
  msgstr ""
1224
 
1225
+ #: ../inc/class-admin.php:127
 
1226
  msgid "Documentation"
1227
  msgstr ""
1228
 
1229
+ #: ../inc/class-admin.php:139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1230
  msgid "BackWPup Dashboard"
1231
  msgstr ""
1232
 
1233
+ #: ../inc/class-admin.php:139
1234
  msgid "Dashboard"
1235
  msgstr ""
1236
 
1237
+ #: ../inc/class-admin.php:156 ../inc/class-admin.php:156 ../inc/class-adminbar.
1238
+ #: php:86 ../inc/class-page-settings.php:115
1239
  msgid "Jobs"
1240
  msgstr ""
1241
 
1242
+ #: ../inc/class-admin.php:171 ../inc/class-admin.php:171
1243
  msgid "Add new job"
1244
  msgstr ""
1245
 
1246
+ #: ../inc/class-admin.php:201 ../inc/class-admin.php:201 ../inc/class-adminbar.
1247
  #: php:110
1248
  msgid "Backups"
1249
  msgstr ""
1250
 
1251
+ #: ../inc/class-admin.php:216 ../inc/class-admin.php:216
1252
  msgid "Settings"
1253
  msgstr ""
1254
 
1255
+ #: ../inc/class-admin.php:229 ../inc/class-admin.php:229
1256
  msgid "About"
1257
  msgstr ""
1258
 
1259
+ #: ../inc/class-admin.php:264 ../inc/class-admin.php:270
1260
  msgid "Cheating, huh?"
1261
  msgstr ""
1262
 
1263
+ #: ../inc/class-admin.php:387
 
 
 
 
 
 
 
 
1264
  #, php-format
1265
  msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
1266
  msgstr ""
1267
 
1268
+ #: ../inc/class-admin.php:407
1269
  #, php-format
1270
  msgid "version %s"
1271
  msgstr ""
1272
 
1273
+ #: ../inc/class-admin.php:452
1274
  msgid "Add BackWPup Role"
1275
  msgstr ""
1276
 
1277
+ #: ../inc/class-admin.php:456
1278
  msgid "&mdash; No additional role for BackWPup &mdash;"
1279
  msgstr ""
1280
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1281
  #: ../inc/class-easycron.php:179
1282
  #, php-format
1283
  msgid "EasyCron.com API returns (%s): %s"
1711
  msgstr[0] ""
1712
  msgstr[1] ""
1713
 
1714
+ #: ../inc/class-destination-s3.php:80
1715
+ msgid "Select a S3 service"
1716
+ msgstr ""
1717
+
1718
+ #: ../inc/class-destination-s3.php:82 ../inc/pro/class-destination-s3.php:18
1719
+ msgid "Amazon S3 Region"
1720
+ msgstr ""
1721
+
1722
+ #: ../inc/class-destination-s3.php:83 ../inc/pro/class-destination-s3.php:19
1723
+ msgid "Amazon S3: US Standard"
1724
+ msgstr ""
1725
+
1726
+ #: ../inc/class-destination-s3.php:84 ../inc/pro/class-destination-s3.php:20
1727
+ msgid "Amazon S3: US West (Northern California)"
1728
+ msgstr ""
1729
+
1730
+ #: ../inc/class-destination-s3.php:85 ../inc/pro/class-destination-s3.php:21
1731
+ msgid "Amazon S3: US West (Oregon)"
1732
+ msgstr ""
1733
+
1734
+ #: ../inc/class-destination-s3.php:86 ../inc/pro/class-destination-s3.php:22
1735
+ msgid "Amazon S3: EU (Ireland)"
1736
+ msgstr ""
1737
+
1738
+ #: ../inc/class-destination-s3.php:87 ../inc/pro/class-destination-s3.php:23
1739
+ msgid "Amazon S3: EU (Germany)"
1740
+ msgstr ""
1741
+
1742
+ #: ../inc/class-destination-s3.php:88 ../inc/pro/class-destination-s3.php:24
1743
+ msgid "Amazon S3: Asia Pacific (Tokyo)"
1744
+ msgstr ""
1745
+
1746
+ #: ../inc/class-destination-s3.php:89 ../inc/pro/class-destination-s3.php:25
1747
+ msgid "Amazon S3: Asia Pacific (Seoul)"
1748
+ msgstr ""
1749
+
1750
+ #: ../inc/class-destination-s3.php:90 ../inc/pro/class-destination-s3.php:26
1751
+ msgid "Amazon S3: Asia Pacific (Singapore)"
1752
+ msgstr ""
1753
+
1754
+ #: ../inc/class-destination-s3.php:91 ../inc/pro/class-destination-s3.php:27
1755
+ msgid "Amazon S3: Asia Pacific (Sydney)"
1756
+ msgstr ""
1757
+
1758
+ #: ../inc/class-destination-s3.php:92 ../inc/pro/class-destination-s3.php:28
1759
+ msgid "Amazon S3: South America (Sao Paulo)"
1760
+ msgstr ""
1761
+
1762
+ #: ../inc/class-destination-s3.php:93 ../inc/pro/class-destination-s3.php:29
1763
+ msgid "Amazon S3: China (Beijing)"
1764
+ msgstr ""
1765
+
1766
  #: ../inc/class-destination-s3.php:94 ../inc/pro/class-destination-s3.php:30
1767
  msgid "Google Storage: EU"
1768
  msgstr ""
1775
  msgid "Google Storage: Asia"
1776
  msgstr ""
1777
 
1778
+ #: ../inc/class-destination-s3.php:97 ../inc/pro/class-destination-s3.php:33
1779
+ msgid "Dream Host Cloud Storage"
1780
+ msgstr ""
1781
+
1782
+ #: ../inc/class-destination-s3.php:98 ../inc/pro/class-destination-s3.php:34
1783
+ msgid "GreenQloud Storage Qloud"
1784
+ msgstr ""
1785
+
1786
+ #: ../inc/class-destination-s3.php:103
1787
+ msgid "Or a S3 Server URL"
1788
+ msgstr ""
1789
+
1790
+ #: ../inc/class-destination-s3.php:110
1791
+ msgid "S3 Access Keys"
1792
+ msgstr ""
1793
+
1794
+ #: ../inc/class-destination-s3.php:114 ../inc/pro/class-destination-glacier.php:53
1795
+ msgid "Access Key"
1796
+ msgstr ""
1797
+
1798
+ #: ../inc/class-destination-s3.php:121 ../inc/pro/class-destination-glacier.php:60
1799
+ msgid "Secret Key"
1800
+ msgstr ""
1801
+
1802
+ #: ../inc/class-destination-s3.php:129
1803
+ msgid "S3 Bucket"
1804
+ msgstr ""
1805
+
1806
+ #: ../inc/class-destination-s3.php:133
1807
+ msgid "Bucket selection"
1808
+ msgstr ""
1809
+
1810
+ #: ../inc/class-destination-s3.php:146
1811
+ msgid "Create a new bucket"
1812
+ msgstr ""
1813
+
1814
+ #: ../inc/class-destination-s3.php:153
1815
+ msgid "S3 Backup settings"
1816
+ msgstr ""
1817
+
1818
+ #: ../inc/class-destination-s3.php:157 ../inc/class-destination-rsc.php:99
1819
+ msgid "Folder in bucket"
1820
+ msgstr ""
1821
+
1822
  #: ../inc/class-destination-s3.php:182
1823
  msgid "Multipart Upload"
1824
  msgstr ""
1834
  "Works without a problem on Amazon. Other services might have issues."
1835
  msgstr ""
1836
 
1837
+ #: ../inc/class-destination-s3.php:191
1838
+ msgid "Amazon specific settings"
1839
+ msgstr ""
1840
+
1841
+ #: ../inc/class-destination-s3.php:195 ../inc/class-destination-s3.php:197
1842
+ msgid "Amazon: Storage Class"
1843
+ msgstr ""
1844
+
1845
+ #: ../inc/class-destination-s3.php:198
1846
+ msgid "Standard"
1847
+ msgstr ""
1848
+
1849
+ #: ../inc/class-destination-s3.php:199
1850
+ msgid "Standard-Infrequent Access"
1851
+ msgstr ""
1852
+
1853
+ #: ../inc/class-destination-s3.php:200
1854
+ msgid "Reduced Redundancy"
1855
+ msgstr ""
1856
+
1857
+ #: ../inc/class-destination-s3.php:205
1858
+ msgid "Server side encryption"
1859
+ msgstr ""
1860
+
1861
+ #: ../inc/class-destination-s3.php:209
1862
+ msgid "Save files encrypted (AES256) on server."
1863
+ msgstr ""
1864
+
1865
+ #: ../inc/class-destination-s3.php:269
1866
+ #, php-format
1867
+ msgid "Bucket %1$s created."
1868
+ msgstr ""
1869
+
1870
  #: ../inc/class-destination-s3.php:271 ../inc/pro/class-destination-s3.php:147
1871
  #, php-format
1872
  msgid " %s is not a valid bucket name."
1873
  msgstr ""
1874
 
1875
+ #: ../inc/class-destination-s3.php:312 ../inc/class-destination-s3.php:445 ..
1876
+ #: /inc/class-destination-s3.php:499 ../inc/class-destination-s3.php:533 ..
1877
+ #: /inc/class-destination-s3.php:593 ../inc/pro/class-destination-s3.php:337
1878
+ #, php-format
1879
+ msgid "S3 Service API: %s"
1880
+ msgstr ""
1881
+
1882
+ #: ../inc/class-destination-s3.php:380
1883
+ #, php-format
1884
+ msgid "%d. Trying to send backup file to S3 Service&#160;&hellip;"
1885
+ msgstr ""
1886
+
1887
+ #: ../inc/class-destination-s3.php:393 ../inc/pro/class-destination-s3.php:188
1888
+ #, php-format
1889
+ msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
1890
+ msgstr ""
1891
+
1892
+ #: ../inc/class-destination-s3.php:396 ../inc/pro/class-destination-s3.php:191
1893
+ #, php-format
1894
+ msgid "S3 Bucket \"%s\" does not exist!"
1895
+ msgstr ""
1896
+
1897
  #: ../inc/class-destination-s3.php:403
1898
  msgid "Checking for not aborted multipart Uploads&#160;&hellip;"
1899
  msgstr ""
1900
 
1901
+ #: ../inc/class-destination-s3.php:409
1902
+ #, php-format
1903
+ msgid "Upload for %s aborted."
1904
+ msgstr ""
1905
+
1906
+ #: ../inc/class-destination-s3.php:415
1907
+ msgid "Starting upload to S3 Service&#160;&hellip;"
1908
+ msgstr ""
1909
+
1910
+ #: ../inc/class-destination-s3.php:524 ../inc/pro/class-destination-glacier.php:374
1911
+ #, php-format
1912
+ msgid "Backup transferred to %s."
1913
+ msgstr ""
1914
+
1915
+ #: ../inc/class-destination-s3.php:529
1916
+ #, php-format
1917
+ msgid "Cannot transfer backup to S3! (%1$d) %2$s"
1918
+ msgstr ""
1919
+
1920
+ #: ../inc/class-destination-s3.php:557
1921
+ #, php-format
1922
+ msgid "Storage Class: %s"
1923
+ msgstr ""
1924
+
1925
+ #: ../inc/class-destination-s3.php:583
1926
+ #, php-format
1927
+ msgid "Cannot delete backup from %s."
1928
+ msgstr ""
1929
+
1930
+ #: ../inc/class-destination-s3.php:587
1931
+ #, php-format
1932
+ msgid "One file deleted on S3 Bucket."
1933
+ msgid_plural "%d files deleted on S3 Bucket"
1934
+ msgstr[0] ""
1935
+ msgstr[1] ""
1936
+
1937
+ #: ../inc/class-destination-s3.php:716 ../inc/pro/class-destination-glacier.php:570
1938
+ msgid "Missing secret access key!"
1939
  msgstr ""
1940
 
1941
+ #: ../inc/class-destination-s3.php:722
1942
+ msgid "No bucket found!"
 
1943
  msgstr ""
1944
 
1945
  #: ../inc/class-file.php:154
2074
  msgid "The job \"%s\" needs properly configured destinations to run!"
2075
  msgstr ""
2076
 
2077
+ #: ../inc/class-page-jobs.php:454
 
 
 
 
 
 
 
 
 
2078
  #, php-format
2079
+ msgid ""
2080
+ "Job \"%s\" has started, but not responded for 10 seconds. Please check <a "
2081
+ "href=\"%s\">information</a>."
 
 
 
 
 
 
 
 
2082
  msgstr ""
2083
 
2084
+ #: ../inc/class-page-jobs.php:459
2085
  #, php-format
2086
  msgid "Job \"%s\" started."
2087
  msgstr ""
2088
 
2089
+ #: ../inc/class-page-jobs.php:584
2090
  #, php-format
2091
  msgid "%s &rsaquo; Jobs"
2092
  msgstr ""
2093
 
2094
+ #: ../inc/class-page-jobs.php:584 ../inc/class-adminbar.php:94
2095
  msgid "Add new"
2096
  msgstr ""
2097
 
2098
+ #: ../inc/class-page-jobs.php:604
2099
  #, php-format
2100
  msgid "Job currently running: %s"
2101
  msgstr ""
2102
 
2103
+ #: ../inc/class-page-jobs.php:605
2104
  msgid "Warnings:"
2105
  msgstr ""
2106
 
2107
+ #: ../inc/class-page-jobs.php:606
2108
  msgid "Errors:"
2109
  msgstr ""
2110
 
2111
+ #: ../inc/class-page-jobs.php:607
2112
  msgid "Log of running job"
2113
  msgstr ""
2114
 
2115
+ #: ../inc/class-page-jobs.php:607
2116
  msgid "Display working log"
2117
  msgstr ""
2118
 
2119
+ #: ../inc/class-page-jobs.php:609
2120
  msgid "Close working screen"
2121
  msgstr ""
2122
 
2123
+ #: ../inc/class-page-jobs.php:609
2124
  msgid "Close"
2125
  msgstr ""
2126
 
2127
+ #: ../inc/class-page-jobs.php:778
2128
  msgid "Job completed"
2129
  msgstr ""
2130
 
2131
+ #: ../inc/class-page-jobs.php:780 ../inc/class-job.php:1332
2132
  msgid "ERROR:"
2133
  msgstr ""
2134
 
2135
+ #: ../inc/class-page-jobs.php:780 ../inc/class-job.php:1544
2136
  #, php-format
2137
  msgid ""
2138
  "Job has ended with errors in %s seconds. You must resolve the errors for "
2139
  "correct execution."
2140
  msgstr ""
2141
 
2142
+ #: ../inc/class-page-jobs.php:782 ../inc/class-job.php:1323
2143
  msgid "WARNING:"
2144
  msgstr ""
2145
 
2146
+ #: ../inc/class-page-jobs.php:782
2147
  #, php-format
2148
  msgid ""
2149
  "Job has done with warnings in %s seconds. Please resolve them for correct "
2150
  "execution."
2151
  msgstr ""
2152
 
2153
+ #: ../inc/class-page-jobs.php:784 ../inc/class-job.php:1548
2154
  #, php-format
2155
  msgid "Job done in %s seconds."
2156
  msgstr ""
2311
  msgstr ""
2312
 
2313
  #: ../inc/class-help.php:24
 
 
 
 
 
 
 
 
2314
  msgid "Manual"
2315
  msgstr ""
2316
 
2425
  msgid "Run Now"
2426
  msgstr ""
2427
 
2428
+ #: ../inc/class-page-settings.php:60
2429
  msgid "Settings reset to default"
2430
  msgstr ""
2431
 
2432
+ #: ../inc/class-page-settings.php:102
2433
  msgid "Settings saved"
2434
  msgstr ""
2435
 
2436
+ #: ../inc/class-page-settings.php:113
2437
  #, php-format
2438
  msgid "%s &rsaquo; Settings"
2439
  msgstr ""
2440
 
2441
+ #: ../inc/class-page-settings.php:115 ../inc/class-page-editjob.php:416
2442
  msgid "General"
2443
  msgstr ""
2444
 
2445
+ #: ../inc/class-page-settings.php:115
2446
  msgid "Network"
2447
  msgstr ""
2448
 
2449
+ #: ../inc/class-page-settings.php:115
2450
  msgid "API Keys"
2451
  msgstr ""
2452
 
2453
+ #: ../inc/class-page-settings.php:115
2454
  msgid "Information"
2455
  msgstr ""
2456
 
2457
+ #: ../inc/class-page-settings.php:133
2458
  msgid "Display Settings"
2459
  msgstr ""
2460
 
2461
+ #: ../inc/class-page-settings.php:134
2462
  msgid "Do you want to see BackWPup in the WordPress admin bar?"
2463
  msgstr ""
2464
 
2465
+ #: ../inc/class-page-settings.php:137
2466
  msgid "Admin bar"
2467
  msgstr ""
2468
 
2469
+ #: ../inc/class-page-settings.php:140
2470
  msgid "Admin Bar"
2471
  msgstr ""
2472
 
2473
+ #: ../inc/class-page-settings.php:143
2474
  msgid "Show BackWPup links in admin bar."
2475
  msgstr ""
2476
 
2477
+ #: ../inc/class-page-settings.php:149 ../inc/class-page-settings.php:152
2478
  msgid "Folder sizes"
2479
  msgstr ""
2480
 
2481
+ #: ../inc/class-page-settings.php:155
2482
  msgid ""
2483
  "Display folder sizes in the files tab when editing a job. (Might increase "
2484
  "loading time of files tab.)"
2485
  msgstr ""
2486
 
2487
+ #: ../inc/class-page-settings.php:161
2488
  msgid "Security"
2489
  msgstr ""
2490
 
2491
+ #: ../inc/class-page-settings.php:162
2492
  msgid "Security option for BackWPup"
2493
  msgstr ""
2494
 
2495
+ #: ../inc/class-page-settings.php:165 ../inc/class-page-settings.php:168
2496
  msgid "Protect folders"
2497
  msgstr ""
2498
 
2499
+ #: ../inc/class-page-settings.php:171
2500
  msgid ""
2501
  "Protect BackWPup folders ( Temp, Log and Backups ) with <code>."
2502
  "htaccess</code> and <code>index.php</code>"
2503
  msgstr ""
2504
 
2505
+ #: ../inc/class-page-settings.php:184
2506
  msgid ""
2507
  "Every time BackWPup runs a backup job, a log file is being generated. Choose "
2508
  "where to store your log files and how many of them."
2509
  msgstr ""
2510
 
2511
+ #: ../inc/class-page-settings.php:187
2512
  msgid "Log file folder"
2513
  msgstr ""
2514
 
2515
+ #: ../inc/class-page-settings.php:190
2516
  #, php-format
2517
  msgid "You can use absolute or relative path! Relative path is relative to %s."
2518
  msgstr ""
2519
 
2520
+ #: ../inc/class-page-settings.php:194
2521
  msgid "Maximum log files"
2522
  msgstr ""
2523
 
2524
+ #: ../inc/class-page-settings.php:197
2525
  msgid "Maximum log files in folder."
2526
  msgstr ""
2527
 
2528
+ #: ../inc/class-page-settings.php:201 ../inc/class-page-settings.php:204
2529
  msgid "Compression"
2530
  msgstr ""
2531
 
2532
+ #: ../inc/class-page-settings.php:207
2533
  msgid "Compress log files with GZip."
2534
  msgstr ""
2535
 
2536
+ #: ../inc/class-page-settings.php:213 ../inc/class-page-settings.php:216
2537
  msgid "Logging Level"
2538
  msgstr ""
2539
 
2540
+ #: ../inc/class-page-settings.php:219
2541
  msgid "Normal (translated)"
2542
  msgstr ""
2543
 
2544
+ #: ../inc/class-page-settings.php:220
2545
  msgid "Normal (not translated)"
2546
  msgstr ""
2547
 
2548
+ #: ../inc/class-page-settings.php:221
2549
  msgid "Debug (translated)"
2550
  msgstr ""
2551
 
2552
+ #: ../inc/class-page-settings.php:222
2553
  msgid "Debug (not translated)"
2554
  msgstr ""
2555
 
2556
+ #: ../inc/class-page-settings.php:225
2557
  msgid ""
2558
  "Debug log has much more informations than normal logs. It is for support and "
2559
  "should be handled carefully. For support is the best to use a not translated "
2560
  "log file. Usage of not translated logs can reduce the PHP memory usage too."
2561
  msgstr ""
2562
 
2563
+ #: ../inc/class-page-settings.php:234
2564
  msgid "There are a couple of general options for backup jobs. Set them here."
2565
  msgstr ""
2566
 
2567
+ #: ../inc/class-page-settings.php:237
2568
  msgid "Maximum number of retries for job steps"
2569
  msgstr ""
2570
 
2571
+ #: ../inc/class-page-settings.php:243
2572
  msgid "Maximum script execution time"
2573
  msgstr ""
2574
 
2575
+ #: ../inc/class-page-settings.php:246
2576
  msgid "Maximum PHP Script execution time"
2577
  msgstr ""
2578
 
2579
+ #: ../inc/class-page-settings.php:249
2580
  msgid "seconds."
2581
  msgstr ""
2582
 
2583
+ #: ../inc/class-page-settings.php:250
2584
  msgid ""
2585
  "Job will restart before hitting maximum execution time. Restarts will be "
2586
  "disabled on CLI usage. If <code>ALTERNATE_WP_CRON</code> has been defined, "
2588
  "maximum."
2589
  msgstr ""
2590
 
2591
+ #: ../inc/class-page-settings.php:257
2592
  msgid "Key to start jobs externally with an URL"
2593
  msgstr ""
2594
 
2595
+ #: ../inc/class-page-settings.php:261
2596
  msgid "Will be used to protect job starts from unauthorized person."
2597
  msgstr ""
2598
 
2599
+ #: ../inc/class-page-settings.php:265 ../inc/class-page-settings.php:268
2600
  msgid "Reduce server load"
2601
  msgstr ""
2602
 
2603
+ #: ../inc/class-page-settings.php:271
2604
  msgid "disabled"
2605
  msgstr ""
2606
 
2607
+ #: ../inc/class-page-settings.php:272
2608
  msgid "minimum"
2609
  msgstr ""
2610
 
2611
+ #: ../inc/class-page-settings.php:273
2612
  msgid "medium"
2613
  msgstr ""
2614
 
2615
+ #: ../inc/class-page-settings.php:274
2616
  msgid "maximum"
2617
  msgstr ""
2618
 
2619
+ #: ../inc/class-page-settings.php:277
2620
  msgid "This adds short pauses to the process. Can be used to reduce the CPU load."
2621
  msgstr ""
2622
 
2623
+ #: ../inc/class-page-settings.php:282
2624
  msgid "Empty output on working"
2625
  msgstr ""
2626
 
2627
+ #: ../inc/class-page-settings.php:285 ../inc/class-page-settings.php:288
2628
  msgid "Enable an empty Output on backup working."
2629
  msgstr ""
2630
 
2631
+ #: ../inc/class-page-settings.php:290
2632
  msgid ""
2633
  "This do an empty output on job working. This can help in some situations or "
2634
  "can brake the working. You must test it."
2635
  msgstr ""
2636
 
2637
+ #: ../inc/class-page-settings.php:300
2638
  #, php-format
2639
  msgid "Authentication for <code>%s</code>"
2640
  msgstr ""
2641
 
2642
+ #: ../inc/class-page-settings.php:301
2643
  msgid ""
2644
  "If you protected your blog with HTTP basic authentication (.htaccess), or "
2645
  "you use a Plugin to secure wp-cron.php, than use the authentication methods "
2646
  "below."
2647
  msgstr ""
2648
 
2649
+ #: ../inc/class-page-settings.php:307 ../inc/class-page-settings.php:310
2650
  msgid "Authentication method"
2651
  msgstr ""
2652
 
2653
+ #: ../inc/class-page-settings.php:314
2654
  msgid "Basic auth"
2655
  msgstr ""
2656
 
2657
+ #: ../inc/class-page-settings.php:315
2658
  msgid "WordPress User"
2659
  msgstr ""
2660
 
2661
+ #: ../inc/class-page-settings.php:316
2662
  msgid "Query argument"
2663
  msgstr ""
2664
 
2665
+ #: ../inc/class-page-settings.php:323
2666
  msgid "Basic Auth Username:"
2667
  msgstr ""
2668
 
2669
+ #: ../inc/class-page-settings.php:329
2670
  msgid "Basic Auth Password:"
2671
  msgstr ""
2672
 
2673
+ #: ../inc/class-page-settings.php:334 ../inc/class-page-settings.php:337
2674
  msgid "Select WordPress User"
2675
  msgstr ""
2676
 
2677
+ #: ../inc/class-page-settings.php:353
2678
  msgid "Query arg key=value:"
2679
  msgstr ""
2680
 
2681
+ #: ../inc/class-page-settings.php:372 ../inc/class-page-settings.php:373
2682
  msgid "Setting"
2683
  msgstr ""
2684
 
2685
+ #: ../inc/class-page-settings.php:372 ../inc/class-page-settings.php:373
2686
  msgid "Value"
2687
  msgstr ""
2688
 
2689
+ #: ../inc/class-page-settings.php:374
2690
  msgid "WordPress version"
2691
  msgstr ""
2692
 
2693
+ #: ../inc/class-page-settings.php:376
2694
  msgid "BackWPup version"
2695
  msgstr ""
2696
 
2697
+ #: ../inc/class-page-settings.php:376
2698
  msgid "Get pro."
2699
  msgstr ""
2700
 
2701
+ #: ../inc/class-page-settings.php:378
2702
  msgid "BackWPup Pro version"
2703
  msgstr ""
2704
 
2705
+ #: ../inc/class-page-settings.php:386
2706
  msgid "PHP version"
2707
  msgstr ""
2708
 
2709
+ #: ../inc/class-page-settings.php:387
2710
  msgid "MySQL version"
2711
  msgstr ""
2712
 
2713
+ #: ../inc/class-page-settings.php:390 ../inc/class-page-settings.php:394
2714
  msgid "cURL version"
2715
  msgstr ""
2716
 
2717
+ #: ../inc/class-page-settings.php:391
2718
  msgid "cURL SSL version"
2719
  msgstr ""
2720
 
2721
+ #: ../inc/class-page-settings.php:394
2722
  msgid "unavailable"
2723
  msgstr ""
2724
 
2725
+ #: ../inc/class-page-settings.php:396
2726
  msgid "WP-Cron url:"
2727
  msgstr ""
2728
 
2729
+ #: ../inc/class-page-settings.php:398
2730
  msgid "Server self connect:"
2731
  msgstr ""
2732
 
2733
+ #: ../inc/class-page-settings.php:403
2734
+ msgid "<strong>Not expected HTTP response:</strong><br>"
2735
+ msgstr ""
2736
+
2737
+ #: ../inc/class-page-settings.php:405
2738
+ #, php-format
2739
+ msgid "WP Http Error: <code>%s</code>"
2740
+ msgstr ""
2741
+
2742
+ #: ../inc/class-page-settings.php:407
2743
+ #, php-format
2744
+ msgid "Status-Code: <code>%d</code>"
2745
+ msgstr ""
2746
+
2747
+ #: ../inc/class-page-settings.php:415
2748
+ #, php-format
2749
+ msgid "Content: <code>%s</code>"
2750
+ msgstr ""
2751
+
2752
+ #: ../inc/class-page-settings.php:419
2753
  msgid "Response Test O.K."
2754
  msgstr ""
2755
 
2756
+ #: ../inc/class-page-settings.php:423
2757
  msgid "Temp folder:"
2758
  msgstr ""
2759
 
2760
+ #: ../inc/class-page-settings.php:425
2761
  #, php-format
2762
  msgid "Temp folder %s doesn't exist."
2763
  msgstr ""
2764
 
2765
+ #: ../inc/class-page-settings.php:427
2766
  #, php-format
2767
  msgid "Temporary folder %s is not writable."
2768
  msgstr ""
2769
 
2770
+ #: ../inc/class-page-settings.php:434
2771
  msgid "Log folder:"
2772
  msgstr ""
2773
 
2774
+ #: ../inc/class-page-settings.php:436
2775
  #, php-format
2776
  msgid "Logs folder %s not exist."
2777
  msgstr ""
2778
 
2779
+ #: ../inc/class-page-settings.php:438
2780
  #, php-format
2781
  msgid "Log folder %s is not writable."
2782
  msgstr ""
2783
 
2784
+ #: ../inc/class-page-settings.php:443
2785
  msgid "Server"
2786
  msgstr ""
2787
 
2788
+ #: ../inc/class-page-settings.php:444
2789
  msgid "Operating System"
2790
  msgstr ""
2791
 
2792
+ #: ../inc/class-page-settings.php:445
2793
  msgid "PHP SAPI"
2794
  msgstr ""
2795
 
2796
+ #: ../inc/class-page-settings.php:446
2797
  msgid "Function Disabled"
2798
  msgstr ""
2799
 
2800
+ #: ../inc/class-page-settings.php:450
2801
  msgid "Current PHP user"
2802
  msgstr ""
2803
 
2804
+ #: ../inc/class-page-settings.php:451 ../inc/class-page-settings.php:455 ..
2805
+ #: /inc/class-page-settings.php:459
2806
  msgid "On"
2807
  msgstr ""
2808
 
2809
+ #: ../inc/class-page-settings.php:451 ../inc/class-page-settings.php:457 ..
2810
+ #: /inc/class-page-settings.php:461
2811
  msgid "Off"
2812
  msgstr ""
2813
 
2814
+ #: ../inc/class-page-settings.php:452
2815
  msgid "Safe Mode"
2816
  msgstr ""
2817
 
2818
+ #: ../inc/class-page-settings.php:453
2819
  msgid "Maximum execution time"
2820
  msgstr ""
2821
 
2822
+ #: ../inc/class-page-settings.php:455 ../inc/class-page-settings.php:457
2823
  msgid "Alternative WP Cron"
2824
  msgstr ""
2825
 
2826
+ #: ../inc/class-page-settings.php:459 ../inc/class-page-settings.php:461
2827
  msgid "Disabled WP Cron"
2828
  msgstr ""
2829
 
2830
+ #: ../inc/class-page-settings.php:463 ../inc/class-page-settings.php:465
2831
  msgid "CHMOD Dir"
2832
  msgstr ""
2833
 
2834
+ #: ../inc/class-page-settings.php:467
2835
  msgid "Server Time"
2836
  msgstr ""
2837
 
2838
+ #: ../inc/class-page-settings.php:468
2839
  msgid "Blog Time"
2840
  msgstr ""
2841
 
2842
+ #: ../inc/class-page-settings.php:469
2843
  msgid "Blog Timezone"
2844
  msgstr ""
2845
 
2846
+ #: ../inc/class-page-settings.php:470
2847
  msgid "Blog Time offset"
2848
  msgstr ""
2849
 
2850
+ #: ../inc/class-page-settings.php:470
2851
  #, php-format
2852
  msgid "%s hours"
2853
  msgstr ""
2854
 
2855
+ #: ../inc/class-page-settings.php:471
2856
  msgid "Blog language"
2857
  msgstr ""
2858
 
2859
+ #: ../inc/class-page-settings.php:472
2860
  msgid "MySQL Client encoding"
2861
  msgstr ""
2862
 
2863
+ #: ../inc/class-page-settings.php:475
2864
  msgid "Blog charset"
2865
  msgstr ""
2866
 
2867
+ #: ../inc/class-page-settings.php:476
2868
  msgid "PHP Memory limit"
2869
  msgstr ""
2870
 
2871
+ #: ../inc/class-page-settings.php:477
2872
  msgid "WP memory limit"
2873
  msgstr ""
2874
 
2875
+ #: ../inc/class-page-settings.php:478
2876
  msgid "WP maximum memory limit"
2877
  msgstr ""
2878
 
2879
+ #: ../inc/class-page-settings.php:479
2880
  msgid "Memory in use"
2881
  msgstr ""
2882
 
2883
+ #: ../inc/class-page-settings.php:484
2884
  msgid "Disabled PHP Functions:"
2885
  msgstr ""
2886
 
2887
+ #: ../inc/class-page-settings.php:489
2888
  msgid "Loaded PHP Extensions:"
2889
  msgstr ""
2890
 
2891
+ #: ../inc/class-page-settings.php:501
2892
  msgid "Save Changes"
2893
  msgstr ""
2894
 
2895
+ #: ../inc/class-page-settings.php:503
2896
  msgid "Reset all settings to default"
2897
  msgstr ""
2898
 
3017
  msgid "Cannot open SQL backup file"
3018
  msgstr ""
3019
 
3020
+ #: ../inc/class-mysqldump.php:153 ../inc/class-mysqldump.php:165 ../inc/class-
3021
+ #: mysqldump.php:259 ../inc/class-mysqldump.php:268 ../inc/class-mysqldump.php:
3022
+ #: 288 ../inc/class-mysqldump.php:297 ../inc/class-mysqldump.php:317 ../inc/class-
3023
+ #: mysqldump.php:323 ../inc/class-mysqldump.php:368 ../inc/class-mysqldump.php:
3024
+ #: 400 ../inc/class-mysqldump.php:437 ../inc/class-mysqldump.php:500 ..
3025
  #: /inc/pro/class-jobtype-dbdump.php:859 ../inc/pro/class-jobtype-dbdump.php:873 .
3026
  #: ./inc/pro/class-jobtype-dbdump.php:921 ../inc/pro/class-jobtype-dbdump.php:940
3027
  #: ../inc/pro/class-jobtype-dbdump.php:983
3029
  msgid "Database error %1$s for query %2$s"
3030
  msgstr ""
3031
 
3032
+ #: ../inc/class-mysqldump.php:479
3033
  #, php-format
3034
  msgid "Start for table backup is not correctly set: %1$s"
3035
  msgstr ""
3036
 
3037
+ #: ../inc/class-mysqldump.php:483
3038
  #, php-format
3039
  msgid "Length for table backup is not correctly set: %1$s"
3040
  msgstr ""
3041
 
3042
+ #: ../inc/class-mysqldump.php:558
3043
  msgid "Error while writing file!"
3044
  msgstr ""
3045
 
3046
+ #: ../inc/class-job.php:180
3047
  msgid "Starting job"
3048
  msgstr ""
3049
 
3050
+ #: ../inc/class-job.php:195
3051
  msgid "Job Start"
3052
  msgstr ""
3053
 
3054
+ #: ../inc/class-job.php:215
3055
  msgid "Creates manifest file"
3056
  msgstr ""
3057
 
3058
+ #: ../inc/class-job.php:237
3059
  msgid "Creates archive"
3060
  msgstr ""
3061
 
3062
+ #: ../inc/class-job.php:277
3063
  msgid "End of Job"
3064
  msgstr ""
3065
 
3066
+ #: ../inc/class-job.php:294
3067
  #, php-format
3068
  msgid "BackWPup log for %1$s from %2$s at %3$s"
3069
  msgstr ""
3070
 
3071
+ #: ../inc/class-job.php:311
3072
  #, php-format
3073
  msgctxt "Plugin name; Plugin Version; plugin url"
3074
  msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
3075
  msgstr ""
3076
 
3077
+ #: ../inc/class-job.php:313
3078
  #, php-format
3079
  msgctxt "WordPress Version; Blog url"
3080
  msgid "[INFO] WordPress %1$s on %2$s"
3081
  msgstr ""
3082
 
3083
+ #: ../inc/class-job.php:315
3084
  msgid "Normal"
3085
  msgstr ""
3086
 
3087
+ #: ../inc/class-job.php:318
3088
  msgid "Debug"
3089
  msgstr ""
3090
 
3091
+ #: ../inc/class-job.php:321
3092
  msgid "(translated)"
3093
  msgstr ""
3094
 
3095
+ #: ../inc/class-job.php:323
3096
  #, php-format
3097
  msgid "[INFO] Log Level: %1$s %2$s"
3098
  msgstr ""
3099
 
3100
+ #: ../inc/class-job.php:328
3101
  #, php-format
3102
  msgid "[INFO] BackWPup job: %1$s"
3103
  msgstr ""
3104
 
3105
+ #: ../inc/class-job.php:331
3106
  #, php-format
3107
  msgid "[INFO] Runs with user: %1$s (%2$d) "
3108
  msgstr ""
3109
 
3110
+ #: ../inc/class-job.php:349 ../inc/class-job.php:359
3111
  #, php-format
3112
  msgid "[INFO] Cron: %s; Next: %s "
3113
  msgstr ""
3114
 
3115
+ #: ../inc/class-job.php:352
3116
  msgid "[INFO] BackWPup job start with link is active"
3117
  msgstr ""
3118
 
3119
+ #: ../inc/class-job.php:354
3120
  msgid "[INFO] BackWPup job start with EasyCron.com"
3121
  msgstr ""
3122
 
3123
+ #: ../inc/class-job.php:362
3124
  msgid "[INFO] BackWPup no automatic job start configured"
3125
  msgstr ""
3126
 
3127
+ #: ../inc/class-job.php:366
3128
  msgid "[INFO] BackWPup job started from wp-cron"
3129
  msgstr ""
3130
 
3131
+ #: ../inc/class-job.php:368
3132
  msgid "[INFO] BackWPup job started manually"
3133
  msgstr ""
3134
 
3135
+ #: ../inc/class-job.php:370
3136
  msgid "[INFO] BackWPup job started from external url"
3137
  msgstr ""
3138
 
3139
+ #: ../inc/class-job.php:372
3140
  msgid "[INFO] BackWPup job started form commandline interface"
3141
  msgstr ""
3142
 
3143
+ #: ../inc/class-job.php:381
3144
  msgid "[INFO] PHP ver.:"
3145
  msgstr ""
3146
 
3147
+ #: ../inc/class-job.php:382
3148
  #, php-format
3149
  msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
3150
  msgstr ""
3151
 
3152
+ #: ../inc/class-job.php:386
3153
  #, php-format
3154
  msgid "[INFO] Script restart time is configured to %1$d seconds"
3155
  msgstr ""
3156
 
3157
+ #: ../inc/class-job.php:389
3158
  #, php-format
3159
  msgid "[INFO] MySQL ver.: %s"
3160
  msgstr ""
3161
 
3162
+ #: ../inc/class-job.php:391
3163
  #, php-format
3164
  msgid "[INFO] Web Server: %s"
3165
  msgstr ""
3166
 
3167
+ #: ../inc/class-job.php:395
3168
  #, php-format
3169
  msgid "[INFO] curl ver.: %1$s; %2$s"
3170
  msgstr ""
3171
 
3172
+ #: ../inc/class-job.php:397
3173
  #, php-format
3174
  msgid "[INFO] Temp folder is: %s"
3175
  msgstr ""
3176
 
3177
+ #: ../inc/class-job.php:404
3178
  #, php-format
3179
  msgid "[INFO] Logfile is: %s"
3180
  msgstr ""
3181
 
3182
+ #: ../inc/class-job.php:411
3183
  #, php-format
3184
  msgid "[INFO] Backup file is: %s"
3185
  msgstr ""
3186
 
3187
+ #: ../inc/class-job.php:413
3188
  #, php-format
3189
  msgid "[INFO] Backup type is: %s"
3190
  msgstr ""
3191
 
3192
+ #: ../inc/class-job.php:421
3193
  msgid "Could not write log file"
3194
  msgstr ""
3195
 
3196
+ #: ../inc/class-job.php:433
3197
  msgid "No destination correctly defined for backup! Please correct job settings."
3198
  msgstr ""
3199
 
3200
+ #: ../inc/class-job.php:671
3201
  msgid "Wrong BackWPup JobID"
3202
  msgstr ""
3203
 
3204
+ #: ../inc/class-job.php:684
3205
  msgid "A BackWPup job is already running"
3206
  msgstr ""
3207
 
3208
+ #: ../inc/class-job.php:740
3209
  msgid "Job restarts due to inactivity for more than 5 minutes."
3210
  msgstr ""
3211
 
3212
+ #: ../inc/class-job.php:855
3213
  msgid "Step aborted: too many attempts!"
3214
  msgstr ""
3215
 
3216
+ #: ../inc/class-job.php:945
3217
  #, php-format
3218
  msgid "Restart after %1$d seconds."
3219
  msgstr ""
3220
 
3221
+ #: ../inc/class-job.php:947
3222
+ msgid "Restart after getting signal."
3223
+ msgstr ""
3224
+
3225
+ #: ../inc/class-job.php:1113
3226
+ msgctxt ""
3227
+ "SIGHUP: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3228
+ "details"
3229
+ msgid "Hangup detected on controlling terminal or death of controlling process"
3230
+ msgstr ""
3231
+
3232
+ #: ../inc/class-job.php:1117
3233
+ msgctxt ""
3234
+ "SIGINT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3235
+ "details"
3236
+ msgid "Interrupt from keyboard"
3237
+ msgstr ""
3238
+
3239
+ #: ../inc/class-job.php:1121
3240
+ msgctxt ""
3241
+ "SIGQUIT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3242
+ "details"
3243
+ msgid "Quit from keyboard"
3244
+ msgstr ""
3245
+
3246
+ #: ../inc/class-job.php:1125
3247
+ msgctxt ""
3248
+ "SIGILL: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3249
+ "details"
3250
+ msgid "Illegal Instruction"
3251
+ msgstr ""
3252
+
3253
+ #: ../inc/class-job.php:1129
3254
+ msgctxt ""
3255
+ "SIGABRT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3256
+ "details"
3257
+ msgid "Abort signal from abort(3)"
3258
+ msgstr ""
3259
+
3260
+ #: ../inc/class-job.php:1133
3261
+ msgctxt ""
3262
+ "SIGBUS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3263
+ "details"
3264
+ msgid "Bus error (bad memory access)"
3265
+ msgstr ""
3266
+
3267
+ #: ../inc/class-job.php:1137
3268
+ msgctxt ""
3269
+ "SIGFPE: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3270
+ "details"
3271
+ msgid "Floating point exception"
3272
+ msgstr ""
3273
+
3274
+ #: ../inc/class-job.php:1141
3275
+ msgctxt ""
3276
+ "SIGSEGV: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3277
+ "details"
3278
+ msgid "Invalid memory reference"
3279
+ msgstr ""
3280
+
3281
+ #: ../inc/class-job.php:1145
3282
+ msgctxt ""
3283
+ "SIGTERM: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3284
+ "details"
3285
+ msgid "Termination signal"
3286
+ msgstr ""
3287
+
3288
+ #: ../inc/class-job.php:1149
3289
+ msgctxt ""
3290
+ "SIGSTKFLT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3291
+ "details"
3292
+ msgid "Stack fault on coprocessor"
3293
+ msgstr ""
3294
+
3295
+ #: ../inc/class-job.php:1153
3296
+ msgctxt ""
3297
+ "SIGUSR1: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3298
+ "details"
3299
+ msgid "User-defined signal 1"
3300
+ msgstr ""
3301
+
3302
+ #: ../inc/class-job.php:1157
3303
+ msgctxt ""
3304
+ "SIGUSR2: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3305
+ "details"
3306
+ msgid "User-defined signal 2"
3307
+ msgstr ""
3308
+
3309
+ #: ../inc/class-job.php:1161
3310
+ msgctxt ""
3311
+ "SIGURG: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3312
+ "details"
3313
+ msgid "Urgent condition on socket"
3314
+ msgstr ""
3315
+
3316
+ #: ../inc/class-job.php:1165
3317
+ msgctxt ""
3318
+ "SIGXCPU: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3319
+ "details"
3320
+ msgid "CPU time limit exceeded"
3321
+ msgstr ""
3322
+
3323
+ #: ../inc/class-job.php:1169
3324
+ msgctxt ""
3325
+ "SIGXFSZ: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3326
+ "details"
3327
+ msgid "File size limit exceeded"
3328
+ msgstr ""
3329
+
3330
+ #: ../inc/class-job.php:1173
3331
+ msgctxt ""
3332
+ "SIGPWR: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3333
+ "details"
3334
+ msgid "Power failure"
3335
+ msgstr ""
3336
+
3337
+ #: ../inc/class-job.php:1177
3338
+ msgctxt ""
3339
+ "SIGSYS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for "
3340
+ "details"
3341
+ msgid "Bad argument to routine"
3342
+ msgstr ""
3343
+
3344
+ #: ../inc/class-job.php:1185 ../inc/class-job.php:1189
3345
  #, php-format
3346
+ msgid "Signal \"%1$s\" (%2$s) is sent to script!"
3347
  msgstr ""
3348
 
3349
+ #: ../inc/class-job.php:1224 ../inc/class-job.php:1237
3350
  #, php-format
3351
  msgid "System: %s"
3352
  msgstr ""
3353
 
3354
+ #: ../inc/class-job.php:1252
3355
  #, php-format
3356
  msgid "Exception caught in %1$s: %2$s"
3357
  msgstr ""
3358
 
3359
+ #: ../inc/class-job.php:1336
3360
  msgid "DEPRECATED:"
3361
  msgstr ""
3362
 
3363
+ #: ../inc/class-job.php:1339
3364
  msgid "STRICT NOTICE:"
3365
  msgstr ""
3366
 
3367
+ #: ../inc/class-job.php:1344
3368
  msgid "RECOVERABLE ERROR:"
3369
  msgstr ""
3370
 
3371
+ #: ../inc/class-job.php:1494
3372
  msgid "Cannot write progress to working file. Job will be aborted."
3373
  msgstr ""
3374
 
3375
+ #: ../inc/class-job.php:1509
3376
  msgid "Aborted by user!"
3377
  msgstr ""
3378
 
3379
+ #: ../inc/class-job.php:1537
3380
  #, php-format
3381
  msgid "One old log deleted"
3382
  msgid_plural "%d old logs deleted"
3383
  msgstr[0] ""
3384
  msgstr[1] ""
3385
 
3386
+ #: ../inc/class-job.php:1546
3387
  #, php-format
3388
  msgid ""
3389
  "Job finished with warnings in %s seconds. Please resolve them for correct "
3390
  "execution."
3391
  msgstr ""
3392
 
3393
+ #: ../inc/class-job.php:1592
3394
  msgid "SUCCESSFUL"
3395
  msgstr ""
3396
 
3397
+ #: ../inc/class-job.php:1594
3398
  msgid "WARNING"
3399
  msgstr ""
3400
 
3401
+ #: ../inc/class-job.php:1597
3402
  msgid "ERROR"
3403
  msgstr ""
3404
 
3405
+ #: ../inc/class-job.php:1600
3406
  #, php-format
3407
  msgid "[%3$s] BackWPup log %1$s: %2$s"
3408
  msgstr ""
3409
 
3410
+ #: ../inc/class-job.php:1968
3411
  #, php-format
3412
  msgctxt "Folder name"
3413
  msgid "Folder %s not exists"
3414
  msgstr ""
3415
 
3416
+ #: ../inc/class-job.php:1974
3417
  #, php-format
3418
  msgctxt "Folder name"
3419
  msgid "Folder %s not readable"
3420
  msgstr ""
3421
 
3422
+ #: ../inc/class-job.php:1994
3423
  #, php-format
3424
  msgid "Link \"%s\" not following."
3425
  msgstr ""
3426
 
3427
+ #: ../inc/class-job.php:1996
3428
  #, php-format
3429
  msgid "File \"%s\" is not readable!"
3430
  msgstr ""
3431
 
3432
+ #: ../inc/class-job.php:2000
3433
  #, php-format
3434
  msgid ""
3435
  "File size of “%s” cannot be retrieved. File might be too large and will not "
3436
  "be added to queue."
3437
  msgstr ""
3438
 
3439
+ #: ../inc/class-job.php:2020
3440
  #, php-format
3441
  msgid "%d. Trying to generate a manifest file&#160;&hellip;"
3442
  msgstr ""
3443
 
3444
+ #: ../inc/class-job.php:2076
3445
  msgid "You may have noticed the manifest.json file in this archive."
3446
  msgstr ""
3447
 
3448
+ #: ../inc/class-job.php:2077
3449
  msgid "manifest.json might be needed for later restoring a backup from this archive."
3450
  msgstr ""
3451
 
3452
+ #: ../inc/class-job.php:2078
3453
  msgid ""
3454
  "Please leave manifest.json untouched and in place. Otherwise it is safe to "
3455
  "be ignored."
3456
  msgstr ""
3457
 
3458
+ #: ../inc/class-job.php:2088
3459
  #, php-format
3460
  msgid "Added manifest.json file with %1$s to backup file list."
3461
  msgstr ""
3462
 
3463
+ #: ../inc/class-job.php:2118
3464
  #, php-format
3465
  msgid "%d. Trying to create backup archive &hellip;"
3466
  msgstr ""
3467
 
3468
+ #: ../inc/class-job.php:2126
3469
  #, php-format
3470
  msgctxt "Archive compression method"
3471
  msgid "Compressing files as %s. Please be patient, this may take a moment."
3472
  msgstr ""
3473
 
3474
+ #: ../inc/class-job.php:2133
3475
  msgid "Adding Extra files to Archive"
3476
  msgstr ""
3477
 
3478
+ #: ../inc/class-job.php:2145 ../inc/class-job.php:2205
3479
  msgid "Cannot create backup archive correctly. Aborting creation."
3480
  msgstr ""
3481
 
3482
+ #: ../inc/class-job.php:2161
3483
  #, php-format
3484
  msgid "Archiving Folder: %s"
3485
  msgstr ""
3486
 
3487
+ #: ../inc/class-job.php:2215
3488
  msgid "Backup archive created."
3489
  msgstr ""
3490
 
3491
+ #: ../inc/class-job.php:2229
3492
  msgid ""
3493
  "The Backup archive will be too large for file operations with this PHP "
3494
  "Version. You might want to consider splitting the backup job in multiple "
3495
  "jobs with less files each."
3496
  msgstr ""
3497
 
3498
+ #: ../inc/class-job.php:2232
3499
  #, php-format
3500
  msgid "Archive size is %s."
3501
  msgstr ""
3502
 
3503
+ #: ../inc/class-job.php:2235
3504
  #, php-format
3505
  msgid "%1$d Files with %2$s in Archive."
3506
  msgstr ""
3661
  msgstr ""
3662
 
3663
  #: ../inc/class-page-editjob.php:97 ../inc/class-page-editjob.php:471 ..
3664
+ #: /inc/class-option.php:106
3665
  msgid "New Job"
3666
  msgstr ""
3667
 
4107
  msgid "Account Name:"
4108
  msgstr ""
4109
 
4110
+ #: ../inc/pro/class-destination-msazure.php:19 ../inc/pro/class-destination-s3.
4111
+ #: php:39 ../inc/pro/class-destination-glacier.php:177
 
4112
  msgid "Access Key:"
4113
  msgstr ""
4114
 
4643
  msgid "BackWPup config imported"
4644
  msgstr ""
4645
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4646
  #: ../inc/pro/class-destination-sugarsync.php:24 ../inc/pro/class-destination-
4647
  #: sugarsync.php:82
4648
  msgid "Sugarsync authenticate!"
4800
  msgid "Folder on server:"
4801
  msgstr ""
4802
 
4803
+ #: ../inc/pro/class-destination-s3.php:17
4804
+ msgid "Select a S3 service:"
4805
+ msgstr ""
4806
+
4807
+ #: ../inc/pro/class-destination-s3.php:36
4808
+ msgid "or set an S3 Server URL:"
4809
+ msgstr ""
4810
+
4811
+ #: ../inc/pro/class-destination-s3.php:42 ../inc/pro/class-destination-glacier.
4812
+ #: php:179
4813
+ msgid "Secret Key:"
4814
+ msgstr ""
4815
+
4816
+ #: ../inc/pro/class-destination-s3.php:45
4817
+ msgid "Bucket:"
4818
+ msgstr ""
4819
+
4820
+ #: ../inc/pro/class-destination-s3.php:55
4821
+ msgid "New Bucket:"
4822
+ msgstr ""
4823
+
4824
+ #: ../inc/pro/class-destination-s3.php:57
4825
+ msgid "Folder in bucket:"
4826
+ msgstr ""
4827
+
4828
+ #: ../inc/pro/class-destination-s3.php:145
4829
+ #, php-format
4830
+ msgid "Bucket %1$s created in %2$s."
4831
+ msgstr ""
4832
+
4833
+ #: ../inc/pro/class-destination-s3.php:169
4834
+ #, php-format
4835
+ msgid "%d. Trying to sync files to S3 Service&#160;&hellip;"
4836
+ msgstr ""
4837
+
4838
+ #: ../inc/pro/class-destination-s3.php:203
4839
+ msgid "Retrieving file list from S3."
4840
+ msgstr ""
4841
+
4842
+ #: ../inc/pro/class-destination-s3.php:265
4843
+ msgid "Upload changed files to S3."
4844
+ msgstr ""
4845
+
4846
+ #: ../inc/pro/class-destination-s3.php:280
4847
+ #, php-format
4848
+ msgid "File %s uploaded to S3."
4849
+ msgstr ""
4850
+
4851
+ #: ../inc/pro/class-destination-s3.php:308
4852
+ #, php-format
4853
+ msgid "Extra file %s uploaded to S3."
4854
+ msgstr ""
4855
+
4856
+ #: ../inc/pro/class-destination-s3.php:321
4857
+ msgid "Delete nonexistent files on S3"
4858
+ msgstr ""
4859
+
4860
+ #: ../inc/pro/class-destination-s3.php:328
4861
+ #, php-format
4862
+ msgid "File %s deleted from S3."
4863
+ msgstr ""
4864
+
4865
  #: ../inc/pro/class-destination-rsc.php:26
4866
  msgid "API Key:"
4867
  msgstr ""
4907
  msgid "File %s deleted from Rackspace Cloud."
4908
  msgstr ""
4909
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4910
  #: ../inc/pro/class-jobtype-dbcheck.php:27
4911
  msgid "Check only WordPress Database tables"
4912
  msgstr ""
5190
  msgid "Archive ID: %s"
5191
  msgstr ""
5192
 
5193
+ #: ../inc/pro/class-destination-glacier.php:379 ../inc/pro/class-pro.php:103
5194
  msgid "Glacier"
5195
  msgstr ""
5196
 
5433
  msgid "Custom configuration"
5434
  msgstr ""
5435
 
5436
+ #: ../inc/pro/class-pro.php:122
5437
  msgid "GDrive"
5438
  msgstr ""
5439
 
5440
+ #: ../inc/pro/class-pro.php:175 ../inc/pro/class-pro.php:175 ../inc/pro/class-pro.
5441
+ #: php:200
5442
  msgid "Wizards"
5443
  msgstr ""
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
- === BackWPup Free - WordPress Backup Plugin ===
2
  Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
3
  Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
4
  Requires at least: 3.8
5
- Tested up to: 4.5
6
- Stable tag: 3.3
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -11,7 +11,7 @@ Schedule complete automatic backups of your WordPress installation. Decide which
11
 
12
  == Description ==
13
 
14
- The **backup plugin** **[BackWPup Free](http://marketpress.com/product/backwpup-pro/)** can be used to save your complete installation including /wp-content/ and push them to an external Backup Service, like **Dropbox**, **S3**, **FTP** and many more, see list below. With a single backup .zip file you are able to easily restore an installation. Please understand: this free version will not be supported as good as the [BackWPup Pro version](http://marketpress.com/product/backwpup-pro/).
15
 
16
  * Database Backup *(needs mysqli)*
17
  * WordPress XML Export
@@ -31,7 +31,7 @@ The **backup plugin** **[BackWPup Free](http://marketpress.com/product/backwpup-
31
  * PRO: Store backup to Google Drive *(needs PHP 5.3.3, curl)*
32
  * Send logs and backups by email
33
  * Multi-site support only as network admin
34
- * Pro version and support available - [BackWPup Pro](http://marketpress.com/product/backwpup-pro/)
35
 
36
  = Requirements =
37
  * WordPress 3.8 and PHP 5.2.7 required!
@@ -48,12 +48,10 @@ https://www.youtube.com/watch?v=pECMkLE27QQ&w=532&rel=0
48
 
49
  **Remember: The most expensive backup is the one you never did! And please test your backups!**
50
 
51
- Get the [BackWPup Pro](http://marketpress.com/product/backwpup-pro/) Version with more features on [MarketPress.com](http://marketpress.com/product/backwpup-pro/)
52
 
53
  **Made by [Inpsyde](http://inpsyde.com) &middot; We love WordPress**
54
 
55
- Have a look at our other premium plugins at [MarketPress.com](http://marketpress.com).
56
-
57
  == Frequently Asked Questions ==
58
 
59
  = My backup jobs don’t seem to run as scheduled. =
@@ -101,7 +99,7 @@ Please set CHMOD 775 on the /wp-content/ directory and refresh the BackWPup dash
101
 
102
 
103
  = How do I restore a backup? =
104
- Up to now, there is no feature in BackWPup to restore a backup. You can follow [these instructions from the WordPress Codex](http://codex.wordpress.org/Restoring_Your_Database_From_Backup) or [this tutorial (also Codex)](http://codex.wordpress.org/WordPress_Backups) for more detailed information on cPanel, Plesk, vDeck and others.
105
 
106
 
107
  = When I edit a job the Files tab loads forever. =
@@ -168,8 +166,18 @@ Please check all settings after the update:
168
  2. Decompress the ZIP file and upload the contents of the archive into `/wp-content/plugins/`.
169
  3. Activate the plugin through the 'Plugins' menu in WordPress
170
 
171
-
172
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
173
  = Version 3.3 =
174
  * Improved: Texts removed or rewritten
175
  * Improved: Security
1
+ === BackWPup - WordPress Backup Plugin ===
2
  Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
3
  Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
4
  Requires at least: 3.8
5
+ Tested up to: 4.5.1
6
+ Stable tag: 3.3.1
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
11
 
12
  == Description ==
13
 
14
+ The **backup plugin** **[BackWPup](http://backwpup.com/)** can be used to save your complete installation including /wp-content/ and push them to an external Backup Service, like **Dropbox**, **S3**, **FTP** and many more, see list below. With a single backup .zip file you are able to easily restore an installation. Please understand: this free version will not be supported as good as the [BackWPup Pro version](http://backwpup.com). With our premium version you get first class support and more features.
15
 
16
  * Database Backup *(needs mysqli)*
17
  * WordPress XML Export
31
  * PRO: Store backup to Google Drive *(needs PHP 5.3.3, curl)*
32
  * Send logs and backups by email
33
  * Multi-site support only as network admin
34
+ * Pro version and support available - [BackWPup Pro](http://backwpup.com)
35
 
36
  = Requirements =
37
  * WordPress 3.8 and PHP 5.2.7 required!
48
 
49
  **Remember: The most expensive backup is the one you never did! And please test your backups!**
50
 
51
+ Get the [BackWPup Pro](http://backwpup.com) Version with more features.
52
 
53
  **Made by [Inpsyde](http://inpsyde.com) &middot; We love WordPress**
54
 
 
 
55
  == Frequently Asked Questions ==
56
 
57
  = My backup jobs don’t seem to run as scheduled. =
99
 
100
 
101
  = How do I restore a backup? =
102
+ Up to now, there is no feature in BackWPup to restore a backup. But we are eagerly working on a restore functionality, which is in beta right now. If you like to participate to test the restore feature, please [write an email](mailto:info@inpsyde.com). Meanwhile you can follow [these instructions from the WordPress Codex](http://codex.wordpress.org/Restoring_Your_Database_From_Backup) or [this tutorial (also Codex)](http://codex.wordpress.org/WordPress_Backups) for more detailed information on cPanel, Plesk, vDeck and others.
103
 
104
 
105
  = When I edit a job the Files tab loads forever. =
166
  2. Decompress the ZIP file and upload the contents of the archive into `/wp-content/plugins/`.
167
  3. Activate the plugin through the 'Plugins' menu in WordPress
168
 
 
169
  == Changelog ==
170
+ = Version 3.3.1 =
171
+ * Fixed: Security exploit in getting working data
172
+ * Fixed: Bug in log mail sending
173
+ * Improved: Signal handling again
174
+ * Improved: Restarts on getting folder list
175
+ * Improved: Text Color in log files
176
+ * Changed: URLs to MarketPress and Documentation
177
+ * Changed: Save file list cache for one year
178
+ * Changed: Use WordPress ca-bundle.crt
179
+ * Removed: Server callback check on job start no it is only in Settings > Tab: Information
180
+
181
  = Version 3.3 =
182
  * Improved: Texts removed or rewritten
183
  * Improved: Security
uninstall.php CHANGED
@@ -9,25 +9,6 @@ global $wpdb;
9
 
10
  //only uninstall if no BackWPup Version active
11
  if ( ! class_exists( 'BackWPup' ) ) {
12
- //remove roles
13
- remove_role( 'backwpup_admin' );
14
- remove_role( 'backwpup_helper' );
15
- remove_role( 'backwpup_check' );
16
-
17
- //remove capabilities to administrator role
18
- $role = get_role( 'administrator' );
19
- if ( is_object( $role ) && method_exists( $role, 'remove_cap' ) ) {
20
- $role->remove_cap( 'backwpup' );
21
- $role->remove_cap( 'backwpup_jobs' );
22
- $role->remove_cap( 'backwpup_jobs_edit' );
23
- $role->remove_cap( 'backwpup_jobs_start' );
24
- $role->remove_cap( 'backwpup_backups' );
25
- $role->remove_cap( 'backwpup_backups_download' );
26
- $role->remove_cap( 'backwpup_backups_delete' );
27
- $role->remove_cap( 'backwpup_logs' );
28
- $role->remove_cap( 'backwpup_logs_delete' );
29
- $role->remove_cap( 'backwpup_settings' );
30
- }
31
 
32
  //delete plugin options
33
  if ( is_multisite() )
9
 
10
  //only uninstall if no BackWPup Version active
11
  if ( ! class_exists( 'BackWPup' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  //delete plugin options
14
  if ( is_multisite() )