BackWPup – WordPress Backup Plugin - Version 3.0.2

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.0.2
Comparing to
See all releases

Code changes from version 3.0.1 to 3.0.2

backwpup.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: WordPress Backup and more...
6
  * Author: Inpsyde GmbH
7
  * Author URI: http://inpsyde.com
8
- * Version: 3.0.1
9
  * Text Domain: backwpup
10
  * Domain Path: /languages/
11
  * Network: true
@@ -231,7 +231,7 @@ if ( ! class_exists( 'BackWPup' ) ) {
231
  public function plugin_init() {
232
 
233
  //Add Admin Bar
234
- if ( ! defined( 'DOING_CRON' ) && current_user_can( 'backwpup' ) && current_user_can( 'backwpup' ) && is_admin_bar_showing() && get_site_option( 'backwpup_cfg_showadminbar', TRUE ) && class_exists( 'BackWPup_Adminbar', TRUE ) )
235
  BackWPup_Adminbar::getInstance();
236
  }
237
 
@@ -284,8 +284,7 @@ if ( ! class_exists( 'BackWPup' ) ) {
284
  if ( !empty( self::$job_types ) )
285
  return self::$job_types;
286
 
287
- if ( class_exists( 'mysqli' ) )
288
- self::$job_types[ 'DBDUMP' ]= new BackWPup_JobType_DBDump;
289
  self::$job_types[ 'FILE' ] = new BackWPup_JobType_File;
290
  self::$job_types[ 'WPEXP' ] = new BackWPup_JobType_WPEXP;
291
  self::$job_types[ 'WPPLUGIN' ] = new BackWPup_JobType_WPPlugin;
5
  * Description: WordPress Backup and more...
6
  * Author: Inpsyde GmbH
7
  * Author URI: http://inpsyde.com
8
+ * Version: 3.0.2
9
  * Text Domain: backwpup
10
  * Domain Path: /languages/
11
  * Network: true
231
  public function plugin_init() {
232
 
233
  //Add Admin Bar
234
+ if ( ! defined( 'DOING_CRON' ) && current_user_can( 'backwpup' ) && current_user_can( 'backwpup' ) && is_admin_bar_showing() && BackWPup_Option::get( 'cfg', 'showadminbar' ) )
235
  BackWPup_Adminbar::getInstance();
236
  }
237
 
284
  if ( !empty( self::$job_types ) )
285
  return self::$job_types;
286
 
287
+ self::$job_types[ 'DBDUMP' ]= new BackWPup_JobType_DBDump;
 
288
  self::$job_types[ 'FILE' ] = new BackWPup_JobType_File;
289
  self::$job_types[ 'WPEXP' ] = new BackWPup_JobType_WPEXP;
290
  self::$job_types[ 'WPPLUGIN' ] = new BackWPup_JobType_WPPlugin;
css/adminbar.css CHANGED
@@ -1 +1 @@
1
- #wp-admin-bar-backwpup.menupop>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop>a>span .ab-icon{background-image:url(../images/BackWPup20.png);background-repeat:no-repeat;position:relative;float:left;width:20px;height:20px;margin-top:3px;margin-right:5px;background-position:top center}#wp-admin-bar-backwpup.menupop.hover>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop.hover>a>span .ab-icon:hover{background-image:url(../images/BackWPup20.png);background-repeat:no-repeat;background-position:bottom center}#wp-admin-bar-backwpup .blink{-webkit-animation:blink .75s linear infinite;-moz-animation:blink .75s linear infinite;-ms-animation:blink .75s linear infinite;-o-animation:blink .75s linear infinite;animation:blink .75s linear infinite}@-webkit-keyframes blink{0%{opacity:1}50%{opacity:1}50.01%{opacity:0}100%{opacity:0}}@-moz-keyframes blink{0%{opacity:1}50%{opacity:1}50.01%{opacity:0}100%{opacity:0}}@-ms-keyframes blink{0%{opacity:1}50%{opacity:1}50.01%{opacity:0}100%{opacity:0}}@-o-keyframes blink{0%{opacity:1}50%{opacity:1}50.01%{opacity:0}100%{opacity:0}}@keyframes blink{0%{opacity:1}50%{opacity:1}50.01%{opacity:0}100%{opacity:0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#wp-admin-bar-backwpup.menupop>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop>a>span .ab-icon{background-image:url(../images/BackWPup20_2x.png);background-repeat:no-repeat;background-size:20px 40px;background-position:top center;position:relative}#wp-admin-bar-backwpup.menupop.hover>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop.hover>a>span .ab-icon:hover{background-image:url(../images/BackWPup20_2x.png);background-repeat:no-repeat;background-position:bottom center}}
1
+ #wp-admin-bar-backwpup.menupop>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop>a>span .ab-icon{background-image:url(../images/BackWPup20.png);background-repeat:no-repeat;position:relative;float:left;width:20px;height:20px;margin-top:3px;margin-right:5px;background-position:top center}#wp-admin-bar-backwpup.menupop.hover>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop.hover>a>span .ab-icon:hover{background-image:url(../images/BackWPup20.png);background-repeat:no-repeat;background-position:bottom center}@media only screen and (-webkit-min-device-pixel-ratio:2){#wp-admin-bar-backwpup.menupop>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop>a>span .ab-icon{background-image:url(../images/BackWPup20_2x.png);background-repeat:no-repeat;background-size:20px 40px;background-position:top center;position:relative}#wp-admin-bar-backwpup.menupop.hover>.ab-item .ab-icon,#wp-admin-bar-backwpup.menupop.hover>a>span .ab-icon:hover{background-image:url(../images/BackWPup20_2x.png);background-repeat:no-repeat;background-position:bottom center}}
css/adminbar.dev.css CHANGED
@@ -17,80 +17,6 @@
17
  background-repeat: no-repeat;
18
  background-position:bottom center;
19
  }
20
- #wp-admin-bar-backwpup .blink {
21
- -webkit-animation: blink .75s linear infinite;
22
- -moz-animation: blink .75s linear infinite;
23
- -ms-animation: blink .75s linear infinite;
24
- -o-animation: blink .75s linear infinite;
25
- animation: blink .75s linear infinite;
26
- }
27
-
28
- @-webkit-keyframes blink {
29
- 0% {
30
- opacity: 1;
31
- }
32
- 50% {
33
- opacity: 1;
34
- }
35
- 50.01% {
36
- opacity: 0;
37
- }
38
- 100% {
39
- opacity: 0;
40
- }
41
- }
42
-
43
- @-moz-keyframes blink {
44
- 0% {
45
- opacity: 1;
46
- }
47
- 50% {
48
- opacity: 1;
49
- }
50
- 50.01% {
51
- opacity: 0;
52
- }
53
- 100% {
54
- opacity: 0;
55
- }
56
- }
57
-
58
- @-ms-keyframes blink {
59
- 0% { opacity: 1; }
60
- 50% { opacity: 1; }
61
- 50.01% { opacity: 0; }
62
- 100% { opacity: 0; }
63
- }
64
-
65
- @-o-keyframes blink {
66
- 0% {
67
- opacity: 1;
68
- }
69
- 50% {
70
- opacity: 1;
71
- }
72
- 50.01% {
73
- opacity: 0;
74
- }
75
- 100% {
76
- opacity: 0;
77
- }
78
- }
79
-
80
- @keyframes blink {
81
- 0% {
82
- opacity: 1;
83
- }
84
- 50% {
85
- opacity: 1;
86
- }
87
- 50.01% {
88
- opacity: 0;
89
- }
90
- 100% {
91
- opacity: 0;
92
- }
93
- }
94
 
95
  @media only screen and (-webkit-min-device-pixel-ratio: 2) {
96
  #wp-admin-bar-backwpup.menupop > .ab-item .ab-icon,
17
  background-repeat: no-repeat;
18
  background-position:bottom center;
19
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  @media only screen and (-webkit-min-device-pixel-ratio: 2) {
22
  #wp-admin-bar-backwpup.menupop > .ab-item .ab-icon,
inc/class-adminbar.php CHANGED
@@ -11,7 +11,7 @@ class BackWPup_Adminbar {
11
  */
12
  private function __construct() {
13
 
14
- if ( defined( 'DOING_CRON' ) || ! current_user_can( 'backwpup' ) || ! is_admin_bar_showing() || ! get_site_option( 'backwpup_cfg_showadminbar', TRUE ) )
15
  return;
16
 
17
  //load text domain
@@ -49,7 +49,7 @@ class BackWPup_Adminbar {
49
  $menu_title = '<span class="ab-icon"></span><span class="ab-label">' . BackWPup::get_plugin_data( 'name' ) . '</span>';
50
  $menu_herf = network_admin_url( 'admin.php' ) . '?page=backwpup';
51
  if ( $job_object && current_user_can( 'backwpup_jobs_start' ) ) {
52
- $menu_title = '<span class="ab-icon blink"></span><span class="ab-label">' . BackWPup::get_plugin_data( 'name' ) . ' <span id="backwpup-adminbar-running">' .__( 'running', 'backwpupadminbar') . '</span></span>';
53
  $menu_herf = network_admin_url( 'admin.php' ) . '?page=backwpupjobs';
54
  }
55
 
11
  */
12
  private function __construct() {
13
 
14
+ if ( defined( 'DOING_CRON' ) || ! current_user_can( 'backwpup' ) || ! is_admin_bar_showing() || ! BackWPup_Option::get( 'cfg', 'showadminbar' ) )
15
  return;
16
 
17
  //load text domain
49
  $menu_title = '<span class="ab-icon"></span><span class="ab-label">' . BackWPup::get_plugin_data( 'name' ) . '</span>';
50
  $menu_herf = network_admin_url( 'admin.php' ) . '?page=backwpup';
51
  if ( $job_object && current_user_can( 'backwpup_jobs_start' ) ) {
52
+ $menu_title = '<span class="ab-icon"></span><span class="ab-label">' . BackWPup::get_plugin_data( 'name' ) . ' <span id="backwpup-adminbar-running">' .__( 'running', 'backwpupadminbar') . '</span></span>';
53
  $menu_herf = network_admin_url( 'admin.php' ) . '?page=backwpupjobs';
54
  }
55
 
inc/class-create-archive.php CHANGED
@@ -348,7 +348,7 @@ class BackWPup_Create_Archive {
348
  $zip_error = __( '(ER_REMOVE) Can\'t remove file', 'backwpup' );
349
  if ( $this->ziparchive->status == 23 )
350
  $zip_error = __( '(ER_DELETED) Entry has been deleted', 'backwpup' );
351
- trigger_error( sprintf( _x( 'ZipArchive returns status: %s','Text of ZipArchive status Massage', 'backwpup' ), $zip_error ), E_USER_ERROR );
352
  }
353
  }
354
 
348
  $zip_error = __( '(ER_REMOVE) Can\'t remove file', 'backwpup' );
349
  if ( $this->ziparchive->status == 23 )
350
  $zip_error = __( '(ER_DELETED) Entry has been deleted', 'backwpup' );
351
+ trigger_error( sprintf( _x( 'ZipArchive returns status: %s','Text of ZipArchive status Massage', 'backwpup' ), $zip_error ), E_USER_WARNING );
352
  }
353
  }
354
 
inc/class-cron.php CHANGED
@@ -85,7 +85,8 @@ class BackWPup_Cron {
85
  $headers = array();
86
  $headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
87
  $headers[] = 'X-Priority: 1';
88
- $headers[] = 'From: BackWPup <' . sanitize_email( get_bloginfo( 'admin_email' ) ).'>';
 
89
  wp_mail( $job_object->job[ 'mailaddresslog' ], $subject, file_get_contents( $job_object->logfile ), $headers );
90
  }
91
  }
@@ -137,11 +138,11 @@ class BackWPup_Cron {
137
  }
138
  }
139
  //temp cleanup
140
- $temp_fodler = scandir( BackWPup::get_plugin_data( 'TEMP' ) );
141
- foreach ( $temp_fodler as $temp_file ) {
142
  if ( is_file( BackWPup::get_plugin_data( 'TEMP' ) . $temp_file ) ) {
143
  if ( '.gz' == substr( $temp_file, -3 ) || '.sql' == substr( $temp_file, -4 ) || '.bz2' == substr( $temp_file, -4 ) || '.zip' == substr( $temp_file, -4 ) || '.txt' == substr( $temp_file, -4 ) || '.xml' == substr( $temp_file, -4 ) )
144
- unlink( BackWPup_Option::get( 'cfg', 'logfolder' ) . $temp_file );
145
  }
146
  }
147
  }
85
  $headers = array();
86
  $headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
87
  $headers[] = 'X-Priority: 1';
88
+ if ( ! empty( $job_object->job[ 'mailaddresssenderlog' ] ) )
89
+ $headers[] = 'From: ' . $job_object->job[ 'mailaddresssenderlog' ];
90
  wp_mail( $job_object->job[ 'mailaddresslog' ], $subject, file_get_contents( $job_object->logfile ), $headers );
91
  }
92
  }
138
  }
139
  }
140
  //temp cleanup
141
+ $temp_folder = scandir( BackWPup::get_plugin_data( 'TEMP' ) );
142
+ foreach ( $temp_folder as $temp_file ) {
143
  if ( is_file( BackWPup::get_plugin_data( 'TEMP' ) . $temp_file ) ) {
144
  if ( '.gz' == substr( $temp_file, -3 ) || '.sql' == substr( $temp_file, -4 ) || '.bz2' == substr( $temp_file, -4 ) || '.zip' == substr( $temp_file, -4 ) || '.txt' == substr( $temp_file, -4 ) || '.xml' == substr( $temp_file, -4 ) )
145
+ unlink( BackWPup::get_plugin_data( 'TEMP' ) . $temp_file );
146
  }
147
  }
148
  }
inc/class-destination-dropbox.php CHANGED
@@ -498,7 +498,7 @@ final class BackWPup_Destination_Dropbox_API {
498
  $job_object = BackWPup_Job::getInstance();
499
 
500
  while ( $data = fread( $file_handel, 4194304 ) ) { //4194304 = 4MB
501
- $chunkHandle = fopen( 'php://memory', 'w+' );
502
  fwrite( $chunkHandle, $data );
503
  rewind( $chunkHandle );
504
  $url = self::API_CONTENT_URL . self::API_VERSION_URL . 'chunked_upload';
498
  $job_object = BackWPup_Job::getInstance();
499
 
500
  while ( $data = fread( $file_handel, 4194304 ) ) { //4194304 = 4MB
501
+ $chunkHandle = fopen( 'php://temp', 'rw' );
502
  fwrite( $chunkHandle, $data );
503
  rewind( $chunkHandle );
504
  $url = self::API_CONTENT_URL . self::API_VERSION_URL . 'chunked_upload';
inc/class-destination-email.php CHANGED
@@ -34,6 +34,7 @@ class BackWPup_Destination_Email extends BackWPup_Destinations {
34
  $default[ 'emailaddress' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
35
  $default[ 'emailefilesize' ] = 20;
36
  $default[ 'emailsndemail' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
 
37
  $default[ 'emailmethod' ] = '';
38
  $default[ 'emailsendmail' ] = ini_get( 'sendmail_path' );
39
  $default[ 'emailhost' ] = isset($_SERVER[ 'SERVER_NAME' ]) ? $_SERVER[ 'SERVER_NAME' ] : '';
@@ -82,7 +83,15 @@ class BackWPup_Destination_Email extends BackWPup_Destinations {
82
  <td><input name="emailsndemail" type="text" id="emailsndemail"
83
  value="<?PHP echo esc_attr( BackWPup_Option::get( $jobid, 'emailsndemail' ) );?>"
84
  class="regular-text" />
85
- <?php BackWPup_Help::tip( __('Sender email address','backwpup') ); ?>
 
 
 
 
 
 
 
 
86
  </td>
87
  </tr>
88
  <tr valign="top">
@@ -177,6 +186,7 @@ class BackWPup_Destination_Email extends BackWPup_Destinations {
177
  emailsndemail: $('input[name="emailsndemail"]').val(),
178
  emailmethod: $('#emailmethod').val(),
179
  emailsendmail: $('input[name="emailsendmail"]').val(),
 
180
  emailhost: $('input[name="emailhost"]').val(),
181
  emailhostport: $('input[name="emailhostport"]').val(),
182
  emailsecure: $('#emailsecure').val(),
@@ -202,6 +212,7 @@ class BackWPup_Destination_Email extends BackWPup_Destinations {
202
  BackWPup_Option::update( $jobid, 'emailsndemail', sanitize_email( $_POST[ 'emailsndemail' ] ) );
203
  BackWPup_Option::update( $jobid, 'emailmethod', ( $_POST[ 'emailmethod' ] == '' || $_POST[ 'emailmethod' ] == 'mail' || $_POST[ 'emailmethod' ] == 'sendmail' || $_POST[ 'emailmethod' ] == 'smtp' ) ? $_POST[ 'emailmethod' ] : '' );
204
  BackWPup_Option::update( $jobid, 'emailsendmail', $_POST[ 'emailsendmail' ] );
 
205
  BackWPup_Option::update( $jobid, 'emailhost', $_POST[ 'emailhost' ] );
206
  BackWPup_Option::update( $jobid, 'emailhostport', (int)$_POST[ 'emailhostport' ] );
207
  BackWPup_Option::update( $jobid, 'emailsecure', ( $_POST[ 'emailsecure' ] == 'ssl' || $_POST[ 'emailsecure' ] == 'tls' ) ? $_POST[ 'emailsecure' ] : '' );
@@ -303,7 +314,7 @@ class BackWPup_Destination_Email extends BackWPup_Destinations {
303
 
304
  // Create a message
305
  $message = Swift_Message::newInstance( sprintf( __( 'BackWPup archive from %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $job_object->start_time, TRUE ), esc_attr($job_object->job[ 'name' ] ) ) );
306
- $message->setFrom( array( $job_object->job[ 'emailsndemail' ] ) );
307
  $message->setTo( array( $job_object->job[ 'emailaddress' ] ) );
308
  $message->setBody( sprintf( __( 'Backup archive: %s', 'backwpup' ), $job_object->backup_file ), 'text/plain', strtolower( get_bloginfo( 'charset' ) ) );
309
  $message->attach( Swift_Attachment::fromPath( $job_object->backup_folder . $job_object->backup_file, $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file ) ) );
@@ -425,7 +436,7 @@ class BackWPup_Destination_Email extends BackWPup_Destinations {
425
 
426
  // Create a message
427
  $message = Swift_Message::newInstance( __( 'BackWPup archive sending TEST Message', 'backwpup' ) );
428
- $message->setFrom( array( $_POST[ 'emailsndemail' ] ) );
429
  $message->setTo( array( $_POST[ 'emailaddress' ] ) );
430
  $message->setBody( __( 'If this message reaches you sending of backup archives per email should work.', 'backwpup' ) );
431
  // Send the message
34
  $default[ 'emailaddress' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
35
  $default[ 'emailefilesize' ] = 20;
36
  $default[ 'emailsndemail' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
37
+ $default[ 'emailsndemailname' ] = 'BackWPup ' . get_bloginfo( 'name' );
38
  $default[ 'emailmethod' ] = '';
39
  $default[ 'emailsendmail' ] = ini_get( 'sendmail_path' );
40
  $default[ 'emailhost' ] = isset($_SERVER[ 'SERVER_NAME' ]) ? $_SERVER[ 'SERVER_NAME' ] : '';
83
  <td><input name="emailsndemail" type="text" id="emailsndemail"
84
  value="<?PHP echo esc_attr( BackWPup_Option::get( $jobid, 'emailsndemail' ) );?>"
85
  class="regular-text" />
86
+ <?php BackWPup_Help::tip( __( 'Sender email address', 'backwpup' ) ); ?>
87
+ </td>
88
+ </tr>
89
+ <tr valign="top">
90
+ <th scope="row"><label for="emailsndemailname"><?PHP _e( 'Sender name', 'backwpup' ); ?></label></th>
91
+ <td><input name="emailsndemailname" type="text" id="emailsndemailname"
92
+ value="<?PHP echo esc_attr( BackWPup_Option::get( $jobid, 'emailsndemailname' ) );?>"
93
+ class="regular-text" />
94
+ <?php BackWPup_Help::tip( __( 'Name of email sender', 'backwpup' ) ); ?>
95
  </td>
96
  </tr>
97
  <tr valign="top">
186
  emailsndemail: $('input[name="emailsndemail"]').val(),
187
  emailmethod: $('#emailmethod').val(),
188
  emailsendmail: $('input[name="emailsendmail"]').val(),
189
+ emailsndemailname: $('input[name="emailsndemailname"]').val(),
190
  emailhost: $('input[name="emailhost"]').val(),
191
  emailhostport: $('input[name="emailhostport"]').val(),
192
  emailsecure: $('#emailsecure').val(),
212
  BackWPup_Option::update( $jobid, 'emailsndemail', sanitize_email( $_POST[ 'emailsndemail' ] ) );
213
  BackWPup_Option::update( $jobid, 'emailmethod', ( $_POST[ 'emailmethod' ] == '' || $_POST[ 'emailmethod' ] == 'mail' || $_POST[ 'emailmethod' ] == 'sendmail' || $_POST[ 'emailmethod' ] == 'smtp' ) ? $_POST[ 'emailmethod' ] : '' );
214
  BackWPup_Option::update( $jobid, 'emailsendmail', $_POST[ 'emailsendmail' ] );
215
+ BackWPup_Option::update( $jobid, 'emailsndemailname', $_POST[ 'emailsndemailname' ] );
216
  BackWPup_Option::update( $jobid, 'emailhost', $_POST[ 'emailhost' ] );
217
  BackWPup_Option::update( $jobid, 'emailhostport', (int)$_POST[ 'emailhostport' ] );
218
  BackWPup_Option::update( $jobid, 'emailsecure', ( $_POST[ 'emailsecure' ] == 'ssl' || $_POST[ 'emailsecure' ] == 'tls' ) ? $_POST[ 'emailsecure' ] : '' );
314
 
315
  // Create a message
316
  $message = Swift_Message::newInstance( sprintf( __( 'BackWPup archive from %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $job_object->start_time, TRUE ), esc_attr($job_object->job[ 'name' ] ) ) );
317
+ $message->setFrom( array( $job_object->job[ 'emailsndemail' ] => $job_object->job[ 'emailsndemailname' ] ) );
318
  $message->setTo( array( $job_object->job[ 'emailaddress' ] ) );
319
  $message->setBody( sprintf( __( 'Backup archive: %s', 'backwpup' ), $job_object->backup_file ), 'text/plain', strtolower( get_bloginfo( 'charset' ) ) );
320
  $message->attach( Swift_Attachment::fromPath( $job_object->backup_folder . $job_object->backup_file, $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file ) ) );
436
 
437
  // Create a message
438
  $message = Swift_Message::newInstance( __( 'BackWPup archive sending TEST Message', 'backwpup' ) );
439
+ $message->setFrom( array( $_POST[ 'emailsndemail' ] => $_POST[ 'emailsndemailname' ] ) );
440
  $message->setTo( array( $_POST[ 'emailaddress' ] ) );
441
  $message->setBody( __( 'If this message reaches you sending of backup archives per email should work.', 'backwpup' ) );
442
  // Send the message
inc/class-destination-rsc.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- // Rackspace OpenCloud SDK v1.3
3
  // http://www.rackspace.com/cloud/files/
4
  // https://github.com/rackspace/php-opencloud
5
  if ( ! defined( 'RAXSDK_CACERTPEM' ) )
1
  <?php
2
+ // Rackspace OpenCloud SDK v1.4.1
3
  // http://www.rackspace.com/cloud/files/
4
  // https://github.com/rackspace/php-opencloud
5
  if ( ! defined( 'RAXSDK_CACERTPEM' ) )
inc/class-destination-s3.php CHANGED
@@ -59,8 +59,6 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
59
  return 'https://s3-ap-southeast-2.amazonaws.com';
60
  case 'sa-east-1':
61
  return 'https://s3-sa-east-1.amazonaws.com';
62
- case 'us-gov-west-1':
63
- return 'https://s3-us-gov-west-1.amazonaws.com';
64
  case 'google-storage':
65
  return 'https://storage.googleapis.com';
66
  case 'hosteurope':
@@ -78,7 +76,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
78
  */
79
  public function option_defaults() {
80
 
81
- return array( 's3accesskey' => '', 's3secretkey' => '', 's3bucket' => '', 's3region' => 'us-east-1', 's3base_url' => '', 's3ssencrypt' => '', 's3storageclass' => '', 's3dir' => trailingslashit( sanitize_title_with_dashes( get_bloginfo( 'name' ) ) ), 's3maxbackups' => 0, 's3syncnodelete' => TRUE );
82
  }
83
 
84
 
@@ -103,7 +101,6 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
103
  <option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
104
  <option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
105
  <option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
106
- <option value="us-gov-west-1" <?php selected( 'us-gov-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: GovCloud (US)', 'backwpup' ); ?></option>
107
  <option value="google-storage" <?php selected( 'google-storage', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Google Storage (Interoperable Access)', 'backwpup' ); ?></option>
108
  <option value="hosteurope" <?php selected( 'hosteurope', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Hosteurope Cloud Storage', 'backwpup' ); ?></option>
109
  <option value="dreamhost" <?php selected( 'dreamhost', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Dream Host Cloud Storage', 'backwpup' ); ?></option>
@@ -185,6 +182,17 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
185
  <?php } ?>
186
  </td>
187
  </tr>
 
 
 
 
 
 
 
 
 
 
 
188
  </table>
189
 
190
  <h3 class="title"><?php _e( 'Amazon specific settings', 'backwpup' ); ?></h3>
@@ -236,6 +244,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
236
 
237
  BackWPup_Option::update( $jobid, 's3maxbackups', isset( $_POST[ 's3maxbackups' ] ) ? (int)$_POST[ 's3maxbackups' ] : 0 );
238
  BackWPup_Option::update( $jobid, 's3syncnodelete', ( isset( $_POST[ 's3syncnodelete' ] ) && $_POST[ 's3syncnodelete' ] == 1 ) ? TRUE : FALSE );
 
239
 
240
  //create new bucket
241
  if ( !empty( $_POST[ 's3newbucket' ] ) ) {
@@ -381,8 +390,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
381
 
382
  if ( $s3->doesBucketExist( $job_object->job[ 's3bucket' ] ) ) {
383
  $bucketregion = $s3->getBucketLocation( array( 'Bucket' => $job_object->job[ 's3bucket' ] ) )->toArray();
384
- $bucketacl = $s3->getBucketAcl( array( 'Bucket' => $job_object->job[ 's3bucket' ] ) )->toArray();
385
- $job_object->log( sprintf( __( 'Connected to S3 Bucket "%1$s" from "%3$s" in %2$s', 'backwpup' ), $job_object->job[ 's3bucket' ], $bucketregion[ 'Location' ], $bucketacl[ 'Owner' ][ 'DisplayName' ] ), E_USER_NOTICE );
386
  }
387
  else {
388
  $job_object->log( sprintf( __( 'S3 Bucket "%s" does not exist!', 'backwpup' ), $job_object->job[ 's3bucket' ] ), E_USER_ERROR );
@@ -395,36 +403,61 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
395
 
396
  //check memory
397
  $job_object->need_free_memory( '6M' );
398
- //Prepare Upload
399
- $multipart_transfer = Aws\S3\Model\MultipartUpload\UploadBuilder::newInstance()
400
- ->setClient( $s3 )
401
- ->setSource( $job_object->backup_folder . $job_object->backup_file )
402
- ->setBucket( $job_object->job[ 's3bucket' ] )
403
- ->setOption('ContentType', $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file ) )
404
- ->setOption('ACL', 'private' )
405
- ->setKey( $job_object->job[ 's3dir' ] . $job_object->backup_file );
406
  if ( ! empty( $job_object->job[ 's3ssencrypt' ] ) )
407
- $multipart_transfer = $multipart_transfer->setOption('ServerSideEncryption', $job_object->job[ 's3ssencrypt' ] );
408
- if ( ! empty( $job_object->job[ 's3storageclass' ] ) )
409
- $multipart_transfer = $multipart_transfer->setOption('StorageClass', $job_object->job[ 's3storageclass' ] );
410
- $multipart_transfer = $multipart_transfer->build();
411
-
412
- // Attach event listeners to the transfer object for upload progress
413
- $dispatcher = $multipart_transfer->getEventDispatcher();
414
- $dispatcher->addListener($multipart_transfer::AFTER_PART_UPLOAD, function ($event) {
415
- $size = $event['command']->get('Body')->getContentLength();
416
- $job_object = BackWPup_Job::get_working_data();
417
- $job_object->substeps_done = $job_object->substeps_done + $size;
418
- $job_object->update_working_data();
419
- });
420
-
421
- try {
422
- $multipart_transfer->upload();
423
- } catch ( Aws\Common\Exception\MultipartUploadException $e ) {
424
- $job_object->log( E_USER_ERROR, sprintf( __( 'S3 Service API: %s', 'backwpup' ), htmlentities( $e->getMessage() ) ), $e->getFile(), $e->getLine() );
425
- $multipart_transfer->abort();
426
-
427
- return FALSE;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  }
429
 
430
  $result = $s3->headObject( array( 'Bucket' => $job_object->job[ 's3bucket' ],
59
  return 'https://s3-ap-southeast-2.amazonaws.com';
60
  case 'sa-east-1':
61
  return 'https://s3-sa-east-1.amazonaws.com';
 
 
62
  case 'google-storage':
63
  return 'https://storage.googleapis.com';
64
  case 'hosteurope':
76
  */
77
  public function option_defaults() {
78
 
79
+ return array( 's3accesskey' => '', 's3secretkey' => '', 's3bucket' => '', 's3region' => 'us-east-1', 's3base_url' => '', 's3ssencrypt' => '', 's3storageclass' => '', 's3dir' => trailingslashit( sanitize_title_with_dashes( get_bloginfo( 'name' ) ) ), 's3maxbackups' => 0, 's3syncnodelete' => TRUE, 's3multipart' => TRUE );
80
  }
81
 
82
 
101
  <option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
102
  <option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
103
  <option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
 
104
  <option value="google-storage" <?php selected( 'google-storage', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Google Storage (Interoperable Access)', 'backwpup' ); ?></option>
105
  <option value="hosteurope" <?php selected( 'hosteurope', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Hosteurope Cloud Storage', 'backwpup' ); ?></option>
106
  <option value="dreamhost" <?php selected( 'dreamhost', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Dream Host Cloud Storage', 'backwpup' ); ?></option>
182
  <?php } ?>
183
  </td>
184
  </tr>
185
+ <?php if ( BackWPup_Option::get( $jobid, 'backuptype' ) == 'archive' ) { ?>
186
+ <tr valign="top">
187
+ <th scope="row"><?php _e( 'Multipart Upload', 'backwpup' ); ?></th>
188
+ <td>
189
+ <label for="ids3multipart"><input class="checkbox" value="1"
190
+ type="checkbox" <?php checked( BackWPup_Option::get( $jobid, 's3multipart' ), TRUE ); ?>
191
+ name="s3multipart" id="ids3multipart" /> <?php _e( 'Use multipart upload for uploading a file', 'backwpup' ); ?></label>
192
+ <?php BackWPup_Help::tip( __( 'Mutipart split the file into peaces of chucks while uploading. It is needed for displaying upload process and can transfer bigger files. Im moment there are problems on Google storage with this option', 'backwpup') ); ?>
193
+ </td>
194
+ </tr>
195
+ <?php } ?>
196
  </table>
197
 
198
  <h3 class="title"><?php _e( 'Amazon specific settings', 'backwpup' ); ?></h3>
244
 
245
  BackWPup_Option::update( $jobid, 's3maxbackups', isset( $_POST[ 's3maxbackups' ] ) ? (int)$_POST[ 's3maxbackups' ] : 0 );
246
  BackWPup_Option::update( $jobid, 's3syncnodelete', ( isset( $_POST[ 's3syncnodelete' ] ) && $_POST[ 's3syncnodelete' ] == 1 ) ? TRUE : FALSE );
247
+ BackWPup_Option::update( $jobid, 's3multipart', ( isset( $_POST[ 's3multipart' ] ) && $_POST[ 's3multipart' ] == 1 ) ? TRUE : FALSE );
248
 
249
  //create new bucket
250
  if ( !empty( $_POST[ 's3newbucket' ] ) ) {
390
 
391
  if ( $s3->doesBucketExist( $job_object->job[ 's3bucket' ] ) ) {
392
  $bucketregion = $s3->getBucketLocation( array( 'Bucket' => $job_object->job[ 's3bucket' ] ) )->toArray();
393
+ $job_object->log( sprintf( __( 'Connected to S3 Bucket "%1$s" in %2$s', 'backwpup' ), $job_object->job[ 's3bucket' ], $bucketregion[ 'Location' ] ), E_USER_NOTICE );
 
394
  }
395
  else {
396
  $job_object->log( sprintf( __( 'S3 Bucket "%s" does not exist!', 'backwpup' ), $job_object->job[ 's3bucket' ] ), E_USER_ERROR );
403
 
404
  //check memory
405
  $job_object->need_free_memory( '6M' );
406
+
407
+ if ( ! $job_object->job[ 's3multipart' ] ) {
408
+ //Prepare Upload
409
+ $create_args = array();
410
+ $create_args[ 'Bucket' ] = $job_object->job[ 's3bucket' ];
411
+ $create_args[ 'ACL' ] = 'private';
 
 
412
  if ( ! empty( $job_object->job[ 's3ssencrypt' ] ) )
413
+ $create_args[ 'ServerSideEncryption' ] = $job_object->job[ 's3ssencrypt' ]; //AES256
414
+ if ( ! empty( $job_object->job[ 's3storageclass' ] ) ) //REDUCED_REDUNDANCY
415
+ $create_args[ 'StorageClass' ] = $job_object->job[ 's3storageclass' ];
416
+ $create_args[ 'Metadata' ] = array( 'BackupTime' => date_i18n( 'Y-m-d H:i:s', $job_object->start_time ) );
417
+
418
+ $create_args[ 'Body' ] = fopen( $job_object->backup_folder . $job_object->backup_file, 'r' );
419
+ $create_args[ 'Key' ] = $job_object->job[ 's3dir' ] . $job_object->backup_file;
420
+ $create_args[ 'ContentType' ] = $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file );
421
+
422
+ try {
423
+ $s3->putObject( $create_args );
424
+ } catch ( Aws\Common\Exception\MultipartUploadException $e ) {
425
+ $job_object->log( E_USER_ERROR, sprintf( __( 'S3 Service API: %s', 'backwpup' ), htmlentities( $e->getMessage() ) ), $e->getFile(), $e->getLine() );
426
+
427
+ return FALSE;
428
+ }
429
+ } else {
430
+ //Prepare Upload
431
+ $multipart_transfer = Aws\S3\Model\MultipartUpload\UploadBuilder::newInstance()
432
+ ->setClient( $s3 )
433
+ ->setSource( $job_object->backup_folder . $job_object->backup_file )
434
+ ->setBucket( $job_object->job[ 's3bucket' ] )
435
+ ->setOption('ContentType', $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file ) )
436
+ ->setOption('ACL', 'private' )
437
+ ->setKey( $job_object->job[ 's3dir' ] . $job_object->backup_file );
438
+ if ( ! empty( $job_object->job[ 's3ssencrypt' ] ) )
439
+ $multipart_transfer = $multipart_transfer->setOption('ServerSideEncryption', $job_object->job[ 's3ssencrypt' ] );
440
+ if ( ! empty( $job_object->job[ 's3storageclass' ] ) )
441
+ $multipart_transfer = $multipart_transfer->setOption('StorageClass', $job_object->job[ 's3storageclass' ] );
442
+ $multipart_transfer = $multipart_transfer->build();
443
+
444
+ // Attach event listeners to the transfer object for upload progress
445
+ $dispatcher = $multipart_transfer->getEventDispatcher();
446
+ $dispatcher->addListener($multipart_transfer::AFTER_PART_UPLOAD, function ($event) {
447
+ $size = $event['command']->get('Body')->getContentLength();
448
+ $job_object = BackWPup_Job::get_working_data();
449
+ $job_object->substeps_done = $job_object->substeps_done + $size;
450
+ $job_object->update_working_data();
451
+ });
452
+
453
+ try {
454
+ $multipart_transfer->upload();
455
+ } catch ( Aws\Common\Exception\MultipartUploadException $e ) {
456
+ $job_object->log( E_USER_ERROR, sprintf( __( 'S3 Service API: %s', 'backwpup' ), htmlentities( $e->getMessage() ) ), $e->getFile(), $e->getLine() );
457
+ $multipart_transfer->abort();
458
+
459
+ return FALSE;
460
+ }
461
  }
462
 
463
  $result = $s3->headObject( array( 'Bucket' => $job_object->job[ 's3bucket' ],
inc/class-file.php CHANGED
@@ -61,7 +61,10 @@ class BackWPup_File {
61
  public static function get_folder_size( $folder, $deep = TRUE ) {
62
 
63
  $files_size = 0;
64
-
 
 
 
65
  $folder_content = scandir( $folder );
66
  foreach( $folder_content as $file ) {
67
  if ( in_array( $file, array( '.', '..' ) ) )
61
  public static function get_folder_size( $folder, $deep = TRUE ) {
62
 
63
  $files_size = 0;
64
+
65
+ if ( ! is_readable( $folder ) )
66
+ return $files_size;
67
+
68
  $folder_content = scandir( $folder );
69
  foreach( $folder_content as $file ) {
70
  if ( in_array( $file, array( '.', '..' ) ) )
inc/class-install.php CHANGED
@@ -232,7 +232,7 @@ class BackWPup_Install {
232
  $jobvalue[ 's3bucket' ] = $jobvalue[ 'GStorageBucket' ];
233
  $jobvalue[ 's3region' ] = 'google-storage';
234
  $jobvalue[ 's3base_url' ] = '';
235
- $jobvalue[ 's3ssencrypt' ] = $jobvalue[ 'dropetoken' ];
236
  $jobvalue[ 's3dir' ] = $jobvalue[ 'GStoragedir' ];
237
  $jobvalue[ 's3maxbackups' ] = $jobvalue[ 'GStoragemaxbackups' ];
238
  unset( $jobvalue[ 'GStorageAccessKey' ], $jobvalue[ 'GStorageSecret' ], $jobvalue[ 'GStorageBucket' ], $jobvalue[ 'GStoragedir' ], $jobvalue[ 'GStoragemaxbackups' ] );
232
  $jobvalue[ 's3bucket' ] = $jobvalue[ 'GStorageBucket' ];
233
  $jobvalue[ 's3region' ] = 'google-storage';
234
  $jobvalue[ 's3base_url' ] = '';
235
+ $jobvalue[ 's3ssencrypt' ] = '';
236
  $jobvalue[ 's3dir' ] = $jobvalue[ 'GStoragedir' ];
237
  $jobvalue[ 's3maxbackups' ] = $jobvalue[ 'GStoragemaxbackups' ];
238
  unset( $jobvalue[ 'GStorageAccessKey' ], $jobvalue[ 'GStorageSecret' ], $jobvalue[ 'GStorageBucket' ], $jobvalue[ 'GStoragedir' ], $jobvalue[ 'GStoragemaxbackups' ] );
inc/class-job.php CHANGED
@@ -623,7 +623,7 @@ final class BackWPup_Job {
623
  @ini_set( 'log_errors', 'On' );
624
  //set temp folder
625
  $this->temp[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] = getenv( 'TMPDIR' );
626
- putenv( 'TMPDIR='.BackWPup::get_plugin_data( 'TEMP') );
627
  //increase MySQL timeout
628
  @ini_set( 'mysql.connect_timeout', '60' );
629
  $wpdb->query( "SET session wait_timeout = 60" );
@@ -646,7 +646,7 @@ final class BackWPup_Job {
646
  $GLOBALS[ 'l10n' ] = array();
647
  }
648
  //clear caches then the backups smaller and lesser problems
649
- if ( has_action('cachify_flush_cache') ) { //clear APC
650
  apc_clear_cache();
651
  }
652
  if ( function_exists('w3tc_objectcache_flush') ) { //W3TC
@@ -1062,8 +1062,14 @@ final class BackWPup_Job {
1062
  @set_time_limit( 0 );
1063
 
1064
  //check MySQL connection to WordPress Database and reconnect if needed
1065
- if ( ! mysql_ping( $wpdb->dbh ) )
1066
- $wpdb->db_connect();
 
 
 
 
 
 
1067
 
1068
  //check if job already aborted
1069
  if ( ! self::get_working_data( FALSE ) && $this->step_working != 'END') {
@@ -1176,7 +1182,7 @@ final class BackWPup_Job {
1176
  @ini_set( 'error_log', $this->temp[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] );
1177
  @ini_set( 'display_errors', $this->temp[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] );
1178
  if ( $this->temp[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] )
1179
- putenv('TMPDIR=' . $this->temp[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] );
1180
  //logfile end
1181
  file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
1182
 
@@ -1203,7 +1209,8 @@ final class BackWPup_Job {
1203
  $headers = array();
1204
  $headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
1205
  $headers[] = 'X-Priority: '.$priority;
1206
- $headers[] = 'From: BackWPup <' . sanitize_email( get_bloginfo( 'admin_email' ) ).'>';
 
1207
 
1208
  wp_mail( $this->job[ 'mailaddresslog' ], $subject, file_get_contents( $this->logfile ), $headers );
1209
  }
@@ -1553,6 +1560,9 @@ final class BackWPup_Job {
1553
  */
1554
  public function get_files_in_folder( $folder ) {
1555
 
 
 
 
1556
  $files = array();
1557
 
1558
  if ( ! is_dir( $folder ) ) {
@@ -1663,8 +1673,8 @@ final class BackWPup_Job {
1663
  if ( ! empty( $suffix ) && substr( $suffix, 0, 1 ) != '.' )
1664
  $suffix = '.' . $suffix;
1665
 
1666
- $name = str_replace( $datevars, $datevalues, $name ) . $suffix;
1667
- $name = sanitize_file_name( $name );
1668
  if ( $delete_temp_file && is_file( BackWPup::get_plugin_data( 'TEMP' ) . $name ) )
1669
  unlink( BackWPup::get_plugin_data( 'TEMP' ) . $name );
1670
 
623
  @ini_set( 'log_errors', 'On' );
624
  //set temp folder
625
  $this->temp[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] = getenv( 'TMPDIR' );
626
+ @putenv( 'TMPDIR='.BackWPup::get_plugin_data( 'TEMP') );
627
  //increase MySQL timeout
628
  @ini_set( 'mysql.connect_timeout', '60' );
629
  $wpdb->query( "SET session wait_timeout = 60" );
646
  $GLOBALS[ 'l10n' ] = array();
647
  }
648
  //clear caches then the backups smaller and lesser problems
649
+ if ( function_exists( 'apc_clear_cache' ) ) { //clear APC
650
  apc_clear_cache();
651
  }
652
  if ( function_exists('w3tc_objectcache_flush') ) { //W3TC
1062
  @set_time_limit( 0 );
1063
 
1064
  //check MySQL connection to WordPress Database and reconnect if needed
1065
+ if ( is_resource( $wpdb->dbh ) ) {
1066
+ if ( ! mysql_ping( $wpdb->dbh ) )
1067
+ $wpdb->db_connect();
1068
+ } else {
1069
+ $res = $wpdb->query( 'SELECT 1' );
1070
+ if ( $res === FALSE )
1071
+ $wpdb->db_connect();
1072
+ }
1073
 
1074
  //check if job already aborted
1075
  if ( ! self::get_working_data( FALSE ) && $this->step_working != 'END') {
1182
  @ini_set( 'error_log', $this->temp[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] );
1183
  @ini_set( 'display_errors', $this->temp[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] );
1184
  if ( $this->temp[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] )
1185
+ @putenv('TMPDIR=' . $this->temp[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] );
1186
  //logfile end
1187
  file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
1188
 
1209
  $headers = array();
1210
  $headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
1211
  $headers[] = 'X-Priority: '.$priority;
1212
+ if ( ! empty( $this->job[ 'mailaddresssenderlog' ] ) )
1213
+ $headers[] = 'From: ' . $this->job[ 'mailaddresssenderlog' ];
1214
 
1215
  wp_mail( $this->job[ 'mailaddresslog' ], $subject, file_get_contents( $this->logfile ), $headers );
1216
  }
1560
  */
1561
  public function get_files_in_folder( $folder ) {
1562
 
1563
+ //clear cache of files in php
1564
+ clearstatcache();
1565
+
1566
  $files = array();
1567
 
1568
  if ( ! is_dir( $folder ) ) {
1673
  if ( ! empty( $suffix ) && substr( $suffix, 0, 1 ) != '.' )
1674
  $suffix = '.' . $suffix;
1675
 
1676
+ $name = str_replace( $datevars, $datevalues, $name );
1677
+ $name = sanitize_file_name( $name ) . $suffix; //prevent _ in extension name that sanitize_file_name add.
1678
  if ( $delete_temp_file && is_file( BackWPup::get_plugin_data( 'TEMP' ) . $name ) )
1679
  unlink( BackWPup::get_plugin_data( 'TEMP' ) . $name );
1680
 
inc/class-jobtype-dbdump.php CHANGED
@@ -155,6 +155,7 @@ class BackWPup_JobType_DBDump extends BackWPup_JobTypes {
155
  * @return bool
156
  */
157
  public function job_run( $job_object ) {
 
158
 
159
  $job_object->substeps_done = 0;
160
  $job_object->substeps_todo = 1;
@@ -175,7 +176,7 @@ class BackWPup_JobType_DBDump extends BackWPup_JobTypes {
175
  $sql_dump = new BackWPup_MySQLDump( array( 'dumpfile' => BackWPup::get_plugin_data( 'TEMP' ) . $job_object->temp[ 'dbdumpfile' ] ) );
176
 
177
  if ( is_object( $sql_dump ) )
178
- $job_object->log( sprintf( __( 'Connected to database %1$s on %2$s', 'backwpup' ), $job_object->job[ 'dbdumpdbname' ], $job_object->job[ 'dbdumpdbhost' ] ) );
179
 
180
  //Exclude Tables
181
  foreach ( $sql_dump->tables_to_dump as $key => $table ) {
155
  * @return bool
156
  */
157
  public function job_run( $job_object ) {
158
+ global $wpdb;
159
 
160
  $job_object->substeps_done = 0;
161
  $job_object->substeps_todo = 1;
176
  $sql_dump = new BackWPup_MySQLDump( array( 'dumpfile' => BackWPup::get_plugin_data( 'TEMP' ) . $job_object->temp[ 'dbdumpfile' ] ) );
177
 
178
  if ( is_object( $sql_dump ) )
179
+ $job_object->log( sprintf( __( 'Connected to database %1$s on %2$s', 'backwpup' ), $wpdb->dbname, $wpdb->dbhost ) );
180
 
181
  //Exclude Tables
182
  foreach ( $sql_dump->tables_to_dump as $key => $table ) {
inc/class-jobtype-file.php CHANGED
@@ -334,7 +334,7 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
334
  if ( ! empty( $job_object->job[ 'backupcontent'] ) && $job_object->substeps_done == 1 ) {
335
  $excludes = $this->get_exclude_dirs( WP_CONTENT_DIR );
336
  foreach( $job_object->job[ 'backupcontentexcludedirs' ] as $folder ) {
337
- $excludes[] = trailingslashit( str_replace( '\\', '/', ABSPATH ) ) . $folder . '/';
338
  }
339
  $this->get_folder_list( $job_object, trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) ), $excludes );
340
  }
@@ -457,7 +457,6 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
457
  if ( $dir = scandir( $folder ) ) {
458
  //add folder to folder list
459
  $job_object->add_folder_to_backup( $folder );
460
- $job_object->temp[ 'folders_to_backup' ][] = $folder;
461
  //scan folder
462
  foreach ( $dir as $file ) {
463
  if ( in_array( $file, array( '.', '..' ) ) )
@@ -474,7 +473,7 @@ class BackWPup_JobType_File extends BackWPup_JobTypes {
474
  trigger_error( sprintf( __( 'Folder "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
475
  continue;
476
  }
477
- if ( in_array( trailingslashit( $folder . $file ), $excludedirs ) || in_array( trailingslashit( $folder . $file ), $job_object->temp[ 'folders_to_backup' ] ) )
478
  continue;
479
  $this->get_folder_list( $job_object, trailingslashit( $folder . $file ), $excludedirs );
480
  }
334
  if ( ! empty( $job_object->job[ 'backupcontent'] ) && $job_object->substeps_done == 1 ) {
335
  $excludes = $this->get_exclude_dirs( WP_CONTENT_DIR );
336
  foreach( $job_object->job[ 'backupcontentexcludedirs' ] as $folder ) {
337
+ $excludes[] = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) ) . $folder . '/';
338
  }
339
  $this->get_folder_list( $job_object, trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) ), $excludes );
340
  }
457
  if ( $dir = scandir( $folder ) ) {
458
  //add folder to folder list
459
  $job_object->add_folder_to_backup( $folder );
 
460
  //scan folder
461
  foreach ( $dir as $file ) {
462
  if ( in_array( $file, array( '.', '..' ) ) )
473
  trigger_error( sprintf( __( 'Folder "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
474
  continue;
475
  }
476
+ if ( in_array( trailingslashit( $folder . $file ), $excludedirs ) )
477
  continue;
478
  $this->get_folder_list( $job_object, trailingslashit( $folder . $file ), $excludedirs );
479
  }
inc/class-mysqldump.php CHANGED
@@ -52,6 +52,9 @@ class BackWPup_MySQLDump {
52
  */
53
  public function __construct( $args = array() ) {
54
  global $wpdb;
 
 
 
55
 
56
  $default_args = array(
57
  'dbhost' => $wpdb->dbhost,
@@ -69,7 +72,7 @@ class BackWPup_MySQLDump {
69
  //check if port or socket in hostname and set port and socket
70
  $args[ 'dbport' ] = NULL;
71
  $args[ 'dbsocket' ] = NULL;
72
- if ( strstr( ':', $args[ 'dbhost' ] ) ) {
73
  $hostparts = explode( ':', $args[ 'dbhost' ] );
74
  $args[ 'dbhost' ] = $hostparts[ 0 ];
75
  if ( is_numeric( $hostparts[ 1 ] ) )
@@ -86,9 +89,11 @@ class BackWPup_MySQLDump {
86
  throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Can not connect to MySQL Database %1$d: %2$s', 'backwpup' ), $this->mysqli->connect_errno, $this->mysqli->connect_error ) );
87
 
88
  //set charset
89
- $res = $this->mysqli->set_charset( $args[ 'dbcharset' ] );
90
- if ( ! $res )
91
- throw new BackWPup_MySQLDump_Exception( sprintf( _x( 'Can not set DB charset to %s','Database Charset', 'backwpup' ), $args[ 'dbcharset' ] ) );
 
 
92
 
93
  //set db name
94
  $this->dbname = $args[ 'dbname' ];
52
  */
53
  public function __construct( $args = array() ) {
54
  global $wpdb;
55
+
56
+ if ( ! class_exists( 'mysqli' ) )
57
+ throw new BackWPup_MySQLDump_Exception( __( 'No MySQLi extension found. Please install it.', 'backwpup' ) );
58
 
59
  $default_args = array(
60
  'dbhost' => $wpdb->dbhost,
72
  //check if port or socket in hostname and set port and socket
73
  $args[ 'dbport' ] = NULL;
74
  $args[ 'dbsocket' ] = NULL;
75
+ if ( strstr( $args[ 'dbhost' ], ':' ) ) {
76
  $hostparts = explode( ':', $args[ 'dbhost' ] );
77
  $args[ 'dbhost' ] = $hostparts[ 0 ];
78
  if ( is_numeric( $hostparts[ 1 ] ) )
89
  throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Can not connect to MySQL Database %1$d: %2$s', 'backwpup' ), $this->mysqli->connect_errno, $this->mysqli->connect_error ) );
90
 
91
  //set charset
92
+ if ( ! empty( $args[ 'dbcharset' ] ) ) {
93
+ $res = $this->mysqli->set_charset( $args[ 'dbcharset' ] );
94
+ if ( ! $res )
95
+ throw new BackWPup_MySQLDump_Exception( sprintf( _x( 'Can not set DB charset to %s','Database Charset', 'backwpup' ), $args[ 'dbcharset' ] ) );
96
+ }
97
 
98
  //set db name
99
  $this->dbname = $args[ 'dbname' ];
inc/class-option.php CHANGED
@@ -116,6 +116,7 @@ final class BackWPup_Option {
116
  $default[ 'cronselect' ] = 'basic';
117
  $default[ 'cron' ] = '0 3 * * *';
118
  $default[ 'mailaddresslog' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
 
119
  $default[ 'mailerroronly' ] = TRUE;
120
  $default[ 'backuptype' ] = 'archive';
121
  $default[ 'archiveformat' ] = '.tar.gz';
116
  $default[ 'cronselect' ] = 'basic';
117
  $default[ 'cron' ] = '0 3 * * *';
118
  $default[ 'mailaddresslog' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
119
+ $default[ 'mailaddresssenderlog' ] = 'BackWPup ' . get_bloginfo( 'name' ) . ' <' . sanitize_email( get_bloginfo( 'admin_email' ) ).'>';
120
  $default[ 'mailerroronly' ] = TRUE;
121
  $default[ 'backuptype' ] = 'archive';
122
  $default[ 'archiveformat' ] = '.tar.gz';
inc/class-page-editjob.php CHANGED
@@ -90,6 +90,13 @@ class BackWPup_Page_Editjob {
90
 
91
  BackWPup_Option::update( $jobid, 'name', esc_html( $_POST[ 'name' ] ) );
92
  BackWPup_Option::update( $jobid, 'mailaddresslog', sanitize_email( $_POST[ 'mailaddresslog' ] ) );
 
 
 
 
 
 
 
93
  BackWPup_Option::update( $jobid, 'mailerroronly', ( isset( $_POST[ 'mailerroronly' ] ) && $_POST[ 'mailerroronly' ] == 1 ) ? TRUE : FALSE );
94
  if ( class_exists( 'BackWPup_Features', FALSE ) )
95
  BackWPup_Option::update( $jobid, 'backuptype', $_POST[ 'backuptype' ] );
@@ -305,13 +312,13 @@ class BackWPup_Page_Editjob {
305
  }
306
 
307
  list( $cronstr[ 'minutes' ], $cronstr[ 'hours' ], $cronstr[ 'mday' ], $cronstr[ 'mon' ], $cronstr[ 'wday' ] ) = explode( ' ', $cronstamp, 5 );
308
- if ( FALSE !== strpos( $cronstr[ 'minutes' ], '*/' ) || ( $cronstr[ 'minutes' ] == '*' ) ) {
309
  $repeatmins = str_replace( '*/', '', $cronstr[ 'minutes' ] );
310
  if ( $repeatmins == '*' || empty( $repeatmins ) )
311
- $repeatmins = 10;
312
  echo '<span style="color:red;">' . sprintf( __( 'ATTENTION: Job runs every %d minutes!', 'backwpup' ), $repeatmins ) . '</span><br />';
313
  }
314
- if ( FALSE !== strpos( $cronstr[ 'hours' ], '*/' ) || ( $cronstr[ 'hours' ] == '*' ) ) {
315
  $repeathouer = str_replace( '*/', '', $cronstr[ 'hours' ] );
316
  if ( $repeathouer == '*' || empty( $repeathouer ) )
317
  $repeathouer = 1;
@@ -556,13 +563,21 @@ class BackWPup_Page_Editjob {
556
  <p></p>
557
  <table class="form-table">
558
  <tr valign="top">
559
- <th scope="row"><label for="mailaddresslog"><?php _e( 'Email address', 'backwpup' ) ?></label></th>
560
  <td>
561
  <input name="mailaddresslog" type="text" id="mailaddresslog"
562
  value="<?php echo BackWPup_Option::get( $jobid, 'mailaddresslog' );?>"
563
  class="regular-text" /><?php BackWPup_Help::tip( __( 'Leave empty and don\'t get a log sent.', 'backwpup' ) ); ?>
564
  </td>
565
  </tr>
 
 
 
 
 
 
 
 
566
  <tr valign="top">
567
  <th scope="row"><?php _e( 'When to send', 'backwpup' ); ?></th>
568
  <td>
@@ -689,7 +704,7 @@ class BackWPup_Page_Editjob {
689
  <td><select name="moncronhours"><?php for ( $i = 0; $i < 24; $i ++ ) {
690
  echo '<option ' . selected( in_array( "$i", $hours, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
691
  } ?></select></td>
692
- <td><select name="moncronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 10 ) {
693
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
694
  } ?></select></td>
695
  </tr>
@@ -707,7 +722,7 @@ class BackWPup_Page_Editjob {
707
  <td><select name="weekcronhours"><?php for ( $i = 0; $i < 24; $i ++ ) {
708
  echo '<option ' . selected( in_array( "$i", $hours, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
709
  } ?></select></td>
710
- <td><select name="weekcronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 10 ) {
711
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
712
  } ?></select></td>
713
  </tr>
@@ -717,7 +732,7 @@ class BackWPup_Page_Editjob {
717
  <td><select name="daycronhours"><?php for ( $i = 0; $i < 24; $i ++ ) {
718
  echo '<option ' . selected( in_array( "$i", $hours, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
719
  } ?></select></td>
720
- <td><select name="daycronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 10 ) {
721
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
722
  } ?></select></td>
723
  </tr>
@@ -725,7 +740,7 @@ class BackWPup_Page_Editjob {
725
  <td><label for="idcronbtype-hour"><?php echo '<input class="radio" type="radio"' . checked( "*", $hours[ 0 ], FALSE, FALSE ) . ' name="cronbtype" id="idcronbtype-hour" value="hour" /> ' . __( 'hourly', 'backwpup' ); ?></label></td>
726
  <td></td>
727
  <td></td>
728
- <td><select name="hourcronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 10 ) {
729
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
730
  } ?></select></td>
731
  </tr>
@@ -741,8 +756,8 @@ class BackWPup_Page_Editjob {
741
  echo '<label for="idcronminutes"><input class="checkbox" type="checkbox"' . checked( in_array( "*", $minutes, TRUE ), TRUE, FALSE ) . ' name="cronminutes[]" id="idcronminutes" value="*" /> ' . __( 'Any (*)', 'backwpup' ) . '</label><br />';
742
  ?>
743
  <div id="cron-min"><?php
744
- for ( $i = 0; $i < 60; $i = $i + 10 ) {
745
- echo '<label for="idcronminutes-' . $i . '"><input class="checkbox" type="checkbox"' . checked( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' name="idcronminutes[]" id="idcronminutes-' . $i . '" value="' . $i . '" /> ' . $i . '</label><br />';
746
  }
747
  ?>
748
  </div>
90
 
91
  BackWPup_Option::update( $jobid, 'name', esc_html( $_POST[ 'name' ] ) );
92
  BackWPup_Option::update( $jobid, 'mailaddresslog', sanitize_email( $_POST[ 'mailaddresslog' ] ) );
93
+
94
+ $_POST[ 'mailaddresssenderlog' ] = trim( $_POST[ 'mailaddresssenderlog' ] );
95
+ if ( empty($_POST[ 'mailaddresssenderlog' ] ) )
96
+ BackWPup_Option::delete( $jobid, 'mailaddresssenderlog');
97
+ else
98
+ BackWPup_Option::update( $jobid, 'mailaddresssenderlog', $_POST[ 'mailaddresssenderlog' ] );
99
+
100
  BackWPup_Option::update( $jobid, 'mailerroronly', ( isset( $_POST[ 'mailerroronly' ] ) && $_POST[ 'mailerroronly' ] == 1 ) ? TRUE : FALSE );
101
  if ( class_exists( 'BackWPup_Features', FALSE ) )
102
  BackWPup_Option::update( $jobid, 'backuptype', $_POST[ 'backuptype' ] );
312
  }
313
 
314
  list( $cronstr[ 'minutes' ], $cronstr[ 'hours' ], $cronstr[ 'mday' ], $cronstr[ 'mon' ], $cronstr[ 'wday' ] ) = explode( ' ', $cronstamp, 5 );
315
+ if ( FALSE !== strpos( $cronstr[ 'minutes' ], '*/' ) || $cronstr[ 'minutes' ] == '*' ) {
316
  $repeatmins = str_replace( '*/', '', $cronstr[ 'minutes' ] );
317
  if ( $repeatmins == '*' || empty( $repeatmins ) )
318
+ $repeatmins = 5;
319
  echo '<span style="color:red;">' . sprintf( __( 'ATTENTION: Job runs every %d minutes!', 'backwpup' ), $repeatmins ) . '</span><br />';
320
  }
321
+ if ( FALSE !== strpos( $cronstr[ 'hours' ], '*/' ) || $cronstr[ 'hours' ] == '*' ) {
322
  $repeathouer = str_replace( '*/', '', $cronstr[ 'hours' ] );
323
  if ( $repeathouer == '*' || empty( $repeathouer ) )
324
  $repeathouer = 1;
563
  <p></p>
564
  <table class="form-table">
565
  <tr valign="top">
566
+ <th scope="row"><label for="mailaddresslog"><?php _e( 'Send to email address', 'backwpup' ) ?></label></th>
567
  <td>
568
  <input name="mailaddresslog" type="text" id="mailaddresslog"
569
  value="<?php echo BackWPup_Option::get( $jobid, 'mailaddresslog' );?>"
570
  class="regular-text" /><?php BackWPup_Help::tip( __( 'Leave empty and don\'t get a log sent.', 'backwpup' ) ); ?>
571
  </td>
572
  </tr>
573
+ <tr valign="top">
574
+ <th scope="row"><label for="mailaddresssenderlog"><?php _e( 'Email sender name', 'backwpup' ) ?></label></th>
575
+ <td>
576
+ <input name="mailaddresssenderlog" type="text" id="mailaddresssenderlog"
577
+ value="<?php echo BackWPup_Option::get( $jobid, 'mailaddresssenderlog' );?>"
578
+ class="regular-text" /><?php BackWPup_Help::tip( __( 'Name and email of email sender in the mail formant. Name &lt;emailadress&gt;', 'backwpup' ) ); ?>
579
+ </td>
580
+ </tr>
581
  <tr valign="top">
582
  <th scope="row"><?php _e( 'When to send', 'backwpup' ); ?></th>
583
  <td>
704
  <td><select name="moncronhours"><?php for ( $i = 0; $i < 24; $i ++ ) {
705
  echo '<option ' . selected( in_array( "$i", $hours, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
706
  } ?></select></td>
707
+ <td><select name="moncronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 5 ) {
708
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
709
  } ?></select></td>
710
  </tr>
722
  <td><select name="weekcronhours"><?php for ( $i = 0; $i < 24; $i ++ ) {
723
  echo '<option ' . selected( in_array( "$i", $hours, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
724
  } ?></select></td>
725
+ <td><select name="weekcronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 5 ) {
726
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
727
  } ?></select></td>
728
  </tr>
732
  <td><select name="daycronhours"><?php for ( $i = 0; $i < 24; $i ++ ) {
733
  echo '<option ' . selected( in_array( "$i", $hours, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
734
  } ?></select></td>
735
+ <td><select name="daycronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 5 ) {
736
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
737
  } ?></select></td>
738
  </tr>
740
  <td><label for="idcronbtype-hour"><?php echo '<input class="radio" type="radio"' . checked( "*", $hours[ 0 ], FALSE, FALSE ) . ' name="cronbtype" id="idcronbtype-hour" value="hour" /> ' . __( 'hourly', 'backwpup' ); ?></label></td>
741
  <td></td>
742
  <td></td>
743
+ <td><select name="hourcronminutes"><?php for ( $i = 0; $i < 60; $i = $i + 5 ) {
744
  echo '<option ' . selected( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' value="' . $i . '" />' . $i . '</option>';
745
  } ?></select></td>
746
  </tr>
756
  echo '<label for="idcronminutes"><input class="checkbox" type="checkbox"' . checked( in_array( "*", $minutes, TRUE ), TRUE, FALSE ) . ' name="cronminutes[]" id="idcronminutes" value="*" /> ' . __( 'Any (*)', 'backwpup' ) . '</label><br />';
757
  ?>
758
  <div id="cron-min"><?php
759
+ for ( $i = 0; $i < 60; $i = $i + 5 ) {
760
+ echo '<label for="idcronminutes-' . $i . '"><input class="checkbox" type="checkbox"' . checked( in_array( "$i", $minutes, TRUE ), TRUE, FALSE ) . ' name="cronminutes[]" id="idcronminutes-' . $i . '" value="' . $i . '" /> ' . $i . '</label><br />';
761
  }
762
  ?>
763
  </div>
inc/class-page-jobs.php CHANGED
@@ -502,7 +502,6 @@ class BackWPup_Page_Jobs extends WP_List_Table {
502
  }
503
  if ( rundata.jobdone == 1 ) {
504
  $("#abortbutton").remove();
505
- $("#wp-admin-bar-backwpup .blink").removeClass('blink');
506
  $("#backwpup-adminbar-running").remove();
507
  $(".job-run").hide();
508
  $("#message").hide();
502
  }
503
  if ( rundata.jobdone == 1 ) {
504
  $("#abortbutton").remove();
 
505
  $("#backwpup-adminbar-running").remove();
506
  $(".job-run").hide();
507
  $("#message").hide();
languages/backwpup-de_DE.mo CHANGED
Binary file
languages/backwpup-de_DE.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: BackWPup Pro v3.0.0\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2013-02-06 17:42+0100\n"
6
- "PO-Revision-Date: 2013-02-27 03:22:32-0600\n"
7
  "Last-Translator: Frank Bueltge <frank@bueltge.de>\n"
8
  "Language-Team: INPSYDE <info@inpsyde.com>\n"
9
  "MIME-Version: 1.0\n"
@@ -143,14 +143,14 @@ msgid "Aborted, because 2 hours no progress!"
143
  msgstr "Abgebrochen, da seit 2 Stunden kein Fortschritt!"
144
 
145
  #: inc/class-cron.php:84
146
- #: inc/class-job.php:1202
147
  #, php-format
148
  #@ backwpup
149
  msgid "[%3$s] BackWPup log %1$s: %2$s"
150
  msgstr "[%3$s] BackWPup Log %1$s: %2$s"
151
 
152
  #: inc/class-cron.php:84
153
- #: inc/class-job.php:1198
154
  #@ backwpup
155
  msgid "ERROR"
156
  msgstr "FEHLER"
@@ -271,13 +271,13 @@ msgstr "Dateilöschung"
271
  #: inc/class-destination-ftp.php:83
272
  #: inc/class-destination-msazure.php:102
273
  #: inc/class-destination-rsc.php:111
274
- #: inc/class-destination-s3.php:180
275
  #: inc/class-destination-sugarsync.php:116
276
  #: inc/features/class-destination-dropbox-pro.php:75
277
  #: inc/features/class-destination-folder-pro.php:27
278
  #: inc/features/class-destination-msazure-pro.php:32
279
  #: inc/features/class-destination-rsc-pro.php:56
280
- #: inc/features/class-destination-s3-pro.php:65
281
  #@ backwpup
282
  msgid "Number of files to hold in folder."
283
  msgstr "Anzahl der Dateien, die im Ordner behalten werden"
@@ -287,13 +287,13 @@ msgstr "Anzahl der Dateien, die im Ordner behalten werden"
287
  #: inc/class-destination-ftp.php:83
288
  #: inc/class-destination-msazure.php:102
289
  #: inc/class-destination-rsc.php:111
290
- #: inc/class-destination-s3.php:180
291
  #: inc/class-destination-sugarsync.php:116
292
  #: inc/features/class-destination-dropbox-pro.php:75
293
  #: inc/features/class-destination-folder-pro.php:27
294
  #: inc/features/class-destination-msazure-pro.php:32
295
  #: inc/features/class-destination-rsc-pro.php:56
296
- #: inc/features/class-destination-s3-pro.php:65
297
  #@ backwpup
298
  msgid "Oldest files will be deleted first. 0 = no deletion"
299
  msgstr "Älteste Dateien werden als erstes gelöscht. 0 = keine Löschung"
@@ -303,12 +303,12 @@ msgstr "Älteste Dateien werden als erstes gelöscht. 0 = keine Löschung"
303
  #: inc/class-destination-ftp.php:87
304
  #: inc/class-destination-msazure.php:106
305
  #: inc/class-destination-rsc.php:115
306
- #: inc/class-destination-s3.php:184
307
  #: inc/class-destination-sugarsync.php:120
308
  #: inc/features/class-destination-folder-pro.php:32
309
  #: inc/features/class-destination-msazure-pro.php:37
310
  #: inc/features/class-destination-rsc-pro.php:61
311
- #: inc/features/class-destination-s3-pro.php:70
312
  #@ backwpup
313
  msgid "Do not delete files on sync to destination!"
314
  msgstr "Lösche keine Dateien beim Synchronisieren im Zielverzeichnis"
@@ -418,7 +418,7 @@ msgstr "FTP-Server"
418
  msgid "Host:"
419
  msgstr "Host (Server):"
420
 
421
- #: inc/class-destination-email.php:118
422
  #: inc/class-destination-ftp.php:46
423
  #: inc/features/class-destination-ftp-pro.php:17
424
  #@ backwpup
@@ -596,158 +596,157 @@ msgid_plural "%d files deleted on FTP Server"
596
  msgstr[0] "Eine Datei auf dem FTP-Server gelöscht"
597
  msgstr[1] "%d Dateien auf dem FTP-Server gelöscht"
598
 
599
- #: inc/class-destination-email.php:54
600
- #: inc/class-destination-email.php:57
601
- #: inc/class-page-editjob.php:559
602
  #@ backwpup
603
  msgid "Email address"
604
  msgstr "E-Mail Adresse"
605
 
606
- #: inc/class-destination-email.php:61
607
  #: inc/features/class-destination-email-pro.php:20
608
  #@ backwpup
609
  msgid "Email address to which Backups are sent."
610
  msgstr "E-Mail Adresse, an die die Backups gesendet werden sollen."
611
 
612
- #: inc/class-destination-email.php:65
613
- #: inc/class-destination-email.php:67
614
  #: inc/features/class-destination-email-pro.php:24
615
  #: inc/features/class-destination-email-pro.php:26
616
  #@ backwpup
617
  msgid "Send test email"
618
  msgstr "Sende eine Test E-Mail"
619
 
620
- #: inc/class-destination-email.php:72
621
  #@ backwpup
622
  msgid "Send email settings"
623
  msgstr "Absende-Einstellungen für E-Mails"
624
 
625
- #: inc/class-destination-email.php:75
626
  #@ backwpup
627
  msgid "Maximum file size"
628
  msgstr "Maximale Dateigröße"
629
 
630
- #: inc/class-destination-email.php:76
631
  #: inc/features/class-destination-email-pro.php:35
632
  #@ backwpup
633
  msgid "MB"
634
  msgstr "MB"
635
 
636
- #: inc/class-destination-email.php:81
637
- #: inc/class-destination-email.php:85
638
  #: inc/features/class-destination-email-pro.php:44
639
  #@ backwpup
640
  msgid "Sender email address"
641
  msgstr "Absender der E-Mails"
642
 
643
- #: inc/class-destination-email.php:89
644
  #@ backwpup
645
  msgid "Send email method"
646
  msgstr "E-Mail-Versandmethode"
647
 
648
- #: inc/class-destination-email.php:93
649
  #@ backwpup
650
  msgid "Use Blog settings"
651
  msgstr "Verwende Blogeinstellungen"
652
 
653
- #: inc/class-destination-email.php:94
654
  #@ backwpup
655
  msgid "PHP: mail()"
656
  msgstr "PHP: mail()"
657
 
658
- #: inc/class-destination-email.php:95
659
  #@ backwpup
660
  msgid "Sendmail"
661
  msgstr "Sendmail"
662
 
663
- #: inc/class-destination-email.php:96
664
  #@ backwpup
665
  msgid "SMTP"
666
  msgstr "SMTP"
667
 
668
- #: inc/class-destination-email.php:99
669
  #@ backwpup
670
  msgid "- Use Blog settings: gets the settings form blog. -PHP mail(): needs more PHP memory"
671
  msgstr "- Verwende Webseiten Einstelllung: zieht die Einstellungen der Webseite. - PHP mail(): verbraucht viel PHP Memory"
672
 
673
- #: inc/class-destination-email.php:104
674
  #@ backwpup
675
  msgid "Sendmail path"
676
  msgstr "Sendmail Pfad"
677
 
678
- #: inc/class-destination-email.php:113
679
  #@ backwpup
680
  msgid "SMTP host name"
681
  msgstr "SMTP Hostname"
682
 
683
- #: inc/class-destination-email.php:125
684
  #@ backwpup
685
  msgid "SMTP secure connection"
686
  msgstr "SMTP Sichere Verbindung"
687
 
688
- #: inc/class-destination-email.php:129
689
- #: inc/class-destination-s3.php:197
690
  #: inc/class-jobtype-dbdump.php:67
691
  #: inc/class-jobtype-dbdump.php:110
692
  #: inc/class-jobtype-wpexp.php:69
693
  #: inc/class-jobtype-wpplugin.php:56
694
- #: inc/class-page-backwpup.php:206
695
- #: inc/class-page-backwpup.php:258
696
  #: inc/features/class-jobtype-dbdump-pro.php:161
697
  #: inc/features/class-jobtype-dbdump-pro.php:219
698
  #@ backwpup
699
  msgid "none"
700
  msgstr "nichts"
701
 
702
- #: inc/class-destination-email.php:130
703
  #@ backwpup
704
  msgid "SSL"
705
  msgstr "SSL"
706
 
707
- #: inc/class-destination-email.php:131
708
  #@ backwpup
709
  msgid "TLS"
710
  msgstr "TLS"
711
 
712
- #: inc/class-destination-email.php:137
713
  #@ backwpup
714
  msgid "SMTP username"
715
  msgstr "SMTP Benutzername"
716
 
717
- #: inc/class-destination-email.php:145
718
  #@ backwpup
719
  msgid "SMTP password"
720
  msgstr "SMTP Passwort"
721
 
722
- #: inc/class-destination-email.php:224
723
  #@ backwpup
724
  msgid "Backup archive too big to be sent by email!"
725
  msgstr "Das Datensicherungsarchiv ist zu groß zum Senden via E-Mail!"
726
 
727
- #: inc/class-destination-email.php:305
728
  #, php-format
729
  #@ backwpup
730
  msgid "BackWPup archive from %1$s: %2$s"
731
  msgstr "BackWPup-Archiv vom %1$s: %2$s"
732
 
733
- #: inc/class-destination-email.php:308
734
  #, php-format
735
  #@ backwpup
736
  msgid "Backup archive: %s"
737
  msgstr "Datensicherungsarchiv: %s"
738
 
739
- #: inc/class-destination-email.php:328
740
- #: inc/class-destination-email.php:445
741
  #@ backwpup
742
  msgid "Email sent."
743
  msgstr "E-Mail gesendet."
744
 
745
- #: inc/class-destination-email.php:427
746
  #@ backwpup
747
  msgid "BackWPup archive sending TEST Message"
748
  msgstr "BackWPup Archiv TEST Nachricht senden"
749
 
750
- #: inc/class-destination-email.php:430
751
  #@ backwpup
752
  msgid "If this message reaches you sending of backup archives per email should work."
753
  msgstr "Falls dich diese Nachricht erreicht, funktioniert das Senden der Sicherungsarchive per E-Mail."
@@ -801,7 +800,7 @@ msgstr "Ordner im Container"
801
 
802
  #: inc/class-destination-msazure.php:96
803
  #: inc/class-destination-rsc.php:105
804
- #: inc/class-destination-s3.php:174
805
  #@ backwpup
806
  msgid "File deletion"
807
  msgstr "Datei Löschung"
@@ -921,13 +920,13 @@ msgid "Chicago (ORD)"
921
  msgstr "Chicago (ORD)"
922
 
923
  #: inc/class-destination-rsc.php:95
924
- #: inc/class-destination-s3.php:164
925
  #@ backwpup
926
  msgid "S3 Backup settings"
927
  msgstr "S3 Backup Einstellungen"
928
 
929
  #: inc/class-destination-rsc.php:99
930
- #: inc/class-destination-s3.php:168
931
  #@ backwpup
932
  msgid "Folder in bucket"
933
  msgstr "Ordner im Bucket"
@@ -1002,7 +1001,7 @@ msgid "No Container's found!"
1002
  msgstr "Keine Container gefunden!"
1003
 
1004
  #: inc/class-destination-s3.php:26
1005
- #: inc/class-destination-s3.php:91
1006
  #@ backwpup
1007
  msgid "S3 Service"
1008
  msgstr "S3 Service"
@@ -1012,223 +1011,212 @@ msgstr "S3 Service"
1012
  msgid "Backup to a S3 Service"
1013
  msgstr "Backup zu einem S3 Service"
1014
 
1015
- #: inc/class-destination-s3.php:95
1016
  #@ backwpup
1017
  msgid "Select a S3 service"
1018
  msgstr "Wähle einen S3 Service"
1019
 
1020
- #: inc/class-destination-s3.php:97
1021
  #: inc/features/class-destination-s3-pro.php:23
1022
  #@ backwpup
1023
  msgid "Amazon S3 Region"
1024
  msgstr "Amazon S3 Region"
1025
 
1026
- #: inc/class-destination-s3.php:98
1027
  #: inc/features/class-destination-s3-pro.php:24
1028
  #@ backwpup
1029
  msgid "Amazon S3: US Standard"
1030
  msgstr "Amazon S3: US Standard"
1031
 
1032
- #: inc/class-destination-s3.php:99
1033
  #: inc/features/class-destination-s3-pro.php:25
1034
  #@ backwpup
1035
  msgid "Amazon S3: US West (Northern California)"
1036
  msgstr "Amazon S3: US West (Northern California)"
1037
 
1038
- #: inc/class-destination-s3.php:100
1039
  #: inc/features/class-destination-s3-pro.php:26
1040
  #@ backwpup
1041
  msgid "Amazon S3: US West (Oregon)"
1042
  msgstr "Amazon S3: US West (Oregon)"
1043
 
1044
- #: inc/class-destination-s3.php:101
1045
  #: inc/features/class-destination-s3-pro.php:27
1046
  #@ backwpup
1047
  msgid "Amazon S3: EU (Ireland)"
1048
  msgstr "Amazon S3: EU (Ireland)"
1049
 
1050
- #: inc/class-destination-s3.php:102
1051
  #: inc/features/class-destination-s3-pro.php:28
1052
  #@ backwpup
1053
  msgid "Amazon S3: Asia Pacific (Tokyo)"
1054
  msgstr "Amazon S3: Asia Pacific (Tokyo)"
1055
 
1056
- #: inc/class-destination-s3.php:103
1057
  #: inc/features/class-destination-s3-pro.php:29
1058
  #@ backwpup
1059
  msgid "Amazon S3: Asia Pacific (Singapore)"
1060
  msgstr "Amazon S3: Asia Pacific (Singapore)"
1061
 
1062
- #: inc/class-destination-s3.php:104
1063
  #: inc/features/class-destination-s3-pro.php:30
1064
  #@ backwpup
1065
  msgid "Amazon S3: Asia Pacific (Sydney)"
1066
  msgstr "Amazon S3: Asia Pacific (Sydney)"
1067
 
1068
- #: inc/class-destination-s3.php:105
1069
  #: inc/features/class-destination-s3-pro.php:31
1070
  #@ backwpup
1071
  msgid "Amazon S3: South America (Sao Paulo)"
1072
  msgstr "Amazon S3: South America (Sao Paulo)"
1073
 
1074
- #: inc/class-destination-s3.php:106
1075
  #: inc/features/class-destination-s3-pro.php:32
1076
  #@ backwpup
1077
- msgid "Amazon S3: GovCloud (US)"
1078
- msgstr "Amazon S3: GovCloud (US)"
1079
-
1080
- #: inc/class-destination-s3.php:107
1081
- #: inc/features/class-destination-s3-pro.php:33
1082
- #@ backwpup
1083
  msgid "Google Storage (Interoperable Access)"
1084
  msgstr "Google Storage (Interoperable Access)"
1085
 
1086
- #: inc/class-destination-s3.php:108
1087
- #: inc/features/class-destination-s3-pro.php:34
1088
  #@ backwpup
1089
  msgid "Hosteurope Cloud Storage"
1090
  msgstr "Hosteurope Cloud Storage"
1091
 
1092
- #: inc/class-destination-s3.php:109
1093
- #: inc/features/class-destination-s3-pro.php:35
1094
  #@ backwpup
1095
  msgid "Dream Host Cloud Storage"
1096
  msgstr "Dream Host Cloud Storage"
1097
 
1098
- #: inc/class-destination-s3.php:114
1099
  #@ backwpup
1100
  msgid "Or a S3 Server url"
1101
  msgstr "oder eine S3 Server URL"
1102
 
1103
- #: inc/class-destination-s3.php:121
1104
  #@ backwpup
1105
  msgid "S3 Access Keys"
1106
  msgstr "S3 Access Keys"
1107
 
1108
- #: inc/class-destination-s3.php:125
1109
  #@ backwpup
1110
  msgid "Access Key"
1111
  msgstr "Access Key"
1112
 
1113
- #: inc/class-destination-s3.php:132
1114
  #@ backwpup
1115
  msgid "Secret Key"
1116
  msgstr "Secret Key"
1117
 
1118
- #: inc/class-destination-s3.php:140
1119
  #@ backwpup
1120
  msgid "S3 Bucket"
1121
  msgstr "S3 Bucket"
1122
 
1123
- #: inc/class-destination-s3.php:144
1124
  #@ backwpup
1125
  msgid "Bucket selection"
1126
  msgstr "Bucket Auswahl"
1127
 
1128
- #: inc/class-destination-s3.php:157
1129
  #@ backwpup
1130
  msgid "Create a new Bucket"
1131
  msgstr "Neues Bucket erstellen"
1132
 
1133
- #: inc/class-destination-s3.php:190
1134
  #@ backwpup
1135
  msgid "Amazon specific settings"
1136
  msgstr "Amazon spezifische Einstellungen"
1137
 
1138
- #: inc/class-destination-s3.php:194
1139
- #: inc/class-destination-s3.php:196
1140
  #@ backwpup
1141
  msgid "Amazon: Storage Class"
1142
  msgstr "Amazon: Storage Class"
1143
 
1144
- #: inc/class-destination-s3.php:198
1145
  #@ backwpup
1146
  msgid "Reduced Redundancy"
1147
  msgstr "Reduzierte Redundanz"
1148
 
1149
- #: inc/class-destination-s3.php:203
1150
  #@ backwpup
1151
  msgid "Server side encryption"
1152
  msgstr "Serverseitige Enkryption"
1153
 
1154
- #: inc/class-destination-s3.php:207
1155
  #@ backwpup
1156
  msgid "Save files encrypted (AES256) on server."
1157
  msgstr "Speicher Dateien Server Side Encrypted (AES256)"
1158
 
1159
- #: inc/class-destination-s3.php:262
1160
- #: inc/features/class-destination-s3-pro.php:124
1161
  #, php-format
1162
  #@ backwpup
1163
  msgid "Bucket %1$s in %2$s created."
1164
  msgstr "Bucket %1$s in %2$s erstellt."
1165
 
1166
- #: inc/class-destination-s3.php:264
1167
  #, php-format
1168
  #@ backwpup
1169
  msgid "Bucket %s could not created."
1170
  msgstr "Bucket %s konnte nicht erstellt werden"
1171
 
1172
- #: inc/class-destination-s3.php:266
1173
- #: inc/features/class-destination-s3-pro.php:128
1174
  #, php-format
1175
  #@ backwpup
1176
  msgid " %s is not a valid bucket name."
1177
  msgstr "%s ist kein gültiger Bucket Name"
1178
 
1179
- #: inc/class-destination-s3.php:308
1180
- #: inc/class-destination-s3.php:424
1181
- #: inc/class-destination-s3.php:444
1182
- #: inc/class-destination-s3.php:503
1183
- #: inc/features/class-destination-s3-pro.php:278
 
1184
  #, php-format
1185
  #@ backwpup
1186
  msgid "S3 Service API: %s"
1187
  msgstr "S3 Service API: %s"
1188
 
1189
- #: inc/class-destination-s3.php:372
1190
  #, php-format
1191
  #@ backwpup
1192
  msgid "%d. Trying to send backup file to S3 Service &hellip;"
1193
  msgstr "%d. Versuche, ein Backup zum S3-Service zu senden &hellip;"
1194
 
1195
- #: inc/class-destination-s3.php:385
1196
- #, php-format
1197
- #@ backwpup
1198
- msgid "Connected to S3 Bucket \"%1$s\" from \"%3$s\" in %2$s"
1199
- msgstr "Mit S3 Bucket \"%1$s\" von \"%3$s\" in %2$s verbunden"
1200
-
1201
- #: inc/class-destination-s3.php:388
1202
- #: inc/features/class-destination-s3-pro.php:166
1203
  #, php-format
1204
  #@ backwpup
1205
  msgid "S3 Bucket \"%s\" does not exist!"
1206
  msgstr "Amazon S3 Bucket \"%s\" existiert nicht!"
1207
 
1208
- #: inc/class-destination-s3.php:394
1209
  #@ backwpup
1210
  msgid "Upload to S3 Service started &hellip;"
1211
  msgstr "Upload zum S3 Service jetzt gestartet &hellip;"
1212
 
1213
- #: inc/class-destination-s3.php:435
1214
  #, php-format
1215
  #@ backwpup
1216
  msgid "Backup transferred to %s."
1217
  msgstr "Datensicherung übertragen zu %s"
1218
 
1219
- #: inc/class-destination-s3.php:440
1220
  #, php-format
1221
  #@ backwpup
1222
  msgid "Can not transfer backup to S3! (%1$d) %2$s"
1223
  msgstr "Datensicherung kann nicht zu Amazon S3 übertragen werden! (%1$d) %2$s"
1224
 
1225
- #: inc/class-destination-s3.php:493
1226
  #, php-format
1227
  #@ backwpup
1228
  msgid "Can not delete backup on %s."
1229
  msgstr "Kann das Backup auf %s nicht löschen"
1230
 
1231
- #: inc/class-destination-s3.php:497
1232
  #, php-format
1233
  #@ backwpup
1234
  msgid "One file deleted on S3 Bucket."
@@ -1236,17 +1224,17 @@ msgid_plural "%d files deleted on S3 Bucket"
1236
  msgstr[0] "Eine Datei im S3-Bucket gelöscht"
1237
  msgstr[1] "%d Dateien im S3-Bucket gelöscht"
1238
 
1239
- #: inc/class-destination-s3.php:600
1240
  #@ backwpup
1241
  msgid "Missing access key!"
1242
  msgstr "Der Zugangsschlüssel (Access Key) fehlt!"
1243
 
1244
- #: inc/class-destination-s3.php:602
1245
  #@ backwpup
1246
  msgid "Missing secret access key!"
1247
  msgstr "Der geheime Zugangsschlüssel (Secret Access Key) fehlt!"
1248
 
1249
- #: inc/class-destination-s3.php:606
1250
  #@ backwpup
1251
  msgid "No bucket found!"
1252
  msgstr "Kein Bucket gefunden!"
@@ -1608,7 +1596,7 @@ msgstr "EXAKTE NOTIZ:"
1608
  msgid "RECOVERABLE ERROR:"
1609
  msgstr "WIEDERHERSTELLUNGS FEHLER:"
1610
 
1611
- #: inc/class-job.php:1121
1612
  #, php-format
1613
  #@ backwpup
1614
  msgid "One old log deleted"
@@ -1616,57 +1604,57 @@ msgid_plural "%d old logs deleted"
1616
  msgstr[0] "Eine alte Log-Datei gelöscht"
1617
  msgstr[1] "%d alte Log-Dateien gelöscht"
1618
 
1619
- #: inc/class-job.php:1126
1620
- #: inc/class-page-jobs.php:567
1621
  #, php-format
1622
  #@ backwpup
1623
  msgid "Job done in %s seconds."
1624
  msgstr "Auftrag erledigt in %s Sekunden."
1625
 
1626
- #: inc/class-job.php:1191
1627
  #@ backwpup
1628
  msgid "SUCCESSFUL"
1629
  msgstr "ERFOLGREICH"
1630
 
1631
- #: inc/class-job.php:1194
1632
  #@ backwpup
1633
  msgid "WARNING"
1634
  msgstr "WARNUNG"
1635
 
1636
- #: inc/class-job.php:1236
1637
  #@ backwpup
1638
  msgid "Set blog into maintenance mode"
1639
  msgstr "Webseite / Blog in den Wartungsmodus versetzen"
1640
 
1641
- #: inc/class-job.php:1249
1642
  #@ backwpup
1643
  msgid "Cannot set blog into maintenance mode! .maintenance is not writable!"
1644
  msgstr "Die Webseite kann nicht in den Wartungsmodus gesetzt werden! Das Root-Verzeichnis ist nicht beschreibbar!"
1645
 
1646
- #: inc/class-job.php:1254
1647
  #@ backwpup
1648
  msgid "Set blog to normal mode"
1649
  msgstr "Setze Webseite / Blog zurück in den Normalmodus"
1650
 
1651
- #: inc/class-job.php:1284
1652
  #, php-format
1653
  #@ backwpup
1654
  msgid "Memory increased from %1$s to %2$s"
1655
  msgstr "Speicher(limit) erhöht von %1$s auf %2$s"
1656
 
1657
- #: inc/class-job.php:1286
1658
  #, php-format
1659
  #@ backwpup
1660
  msgid "Can not increase memory limit. The current value is %1$s"
1661
  msgstr "Das PHP-Speicherlimit kann nicht erhöht werden, es beträgt derzeit %1$s "
1662
 
1663
- #: inc/class-job.php:1579
1664
  #, php-format
1665
  #@ backwpup
1666
  msgid "File \"%s\" is not readable!"
1667
  msgstr "Datei \"%s\" ist nicht lesbar!"
1668
 
1669
- #: inc/class-job.php:1581
1670
  #, php-format
1671
  #@ backwpup
1672
  msgid "Link \"%s\" not followed."
@@ -1793,13 +1781,13 @@ msgstr "(ER_REMOVE) Datei kann nicht entfernt werden"
1793
  msgid "(ER_DELETED) Entry has been deleted"
1794
  msgstr "(ER_DELETED) Eintrag wurde gelöscht"
1795
 
1796
- #: inc/class-job.php:1646
1797
  #, php-format
1798
  #@ backwpup
1799
  msgid "Archive size is %s."
1800
  msgstr "Archivgröße ist %s"
1801
 
1802
- #: inc/class-job.php:1647
1803
  #, php-format
1804
  #@ backwpup
1805
  msgid "%1$d Files with %2$s in Archive."
@@ -1992,55 +1980,55 @@ msgid "BZip2"
1992
  msgstr "BZip2"
1993
 
1994
  #: inc/class-mysqldump.php:86
1995
- #: inc/features/class-jobtype-dbdump-pro.php:699
1996
  #, php-format
1997
  #@ backwpup
1998
  msgid "Can not connect to MySQL Database %1$d: %2$s"
1999
  msgstr "Kann keine Verbindung zur Datenbank %1$d herstellen: %2$s"
2000
 
2001
- #: inc/class-jobtype-dbdump.php:178
2002
  #: inc/features/class-jobtype-dbdump-pro.php:489
2003
- #: inc/features/class-jobtype-dbdump-pro.php:705
2004
  #, php-format
2005
  #@ backwpup
2006
  msgid "Connected to database %1$s on %2$s"
2007
  msgstr "Mit Datenbank %1$s auf %2$s verbunden"
2008
 
2009
- #: inc/class-mysqldump.php:125
2010
- #: inc/class-mysqldump.php:135
2011
- #: inc/class-mysqldump.php:212
2012
- #: inc/class-mysqldump.php:223
2013
- #: inc/class-mysqldump.php:235
2014
- #: inc/class-mysqldump.php:246
2015
- #: inc/class-mysqldump.php:284
2016
- #: inc/class-mysqldump.php:305
2017
- #: inc/class-mysqldump.php:319
2018
- #: inc/features/class-jobtype-dbdump-pro.php:710
2019
- #: inc/features/class-jobtype-dbdump-pro.php:724
2020
- #: inc/features/class-jobtype-dbdump-pro.php:773
2021
- #: inc/features/class-jobtype-dbdump-pro.php:790
2022
- #: inc/features/class-jobtype-dbdump-pro.php:831
2023
  #, php-format
2024
  #@ backwpup
2025
  msgid "Database error %1$s for query %2$s"
2026
  msgstr "Datenbankfehler %1$s für die Abfrage (Query) %2$s"
2027
 
2028
- #: inc/class-jobtype-dbdump.php:190
2029
  #: inc/features/class-jobtype-dbdump-pro.php:502
2030
  #@ backwpup
2031
  msgid "No tables to dump."
2032
  msgstr "Es gibt keine Tabellen zu sichern"
2033
 
2034
- #: inc/class-jobtype-dbdump.php:201
2035
  #: inc/features/class-jobtype-dbdump-pro.php:516
2036
  #, php-format
2037
  #@ backwpup
2038
  msgid "Dump database table \"%s\""
2039
  msgstr "Sichere Datenbanktabelle \"%s\""
2040
 
2041
- #: inc/class-jobtype-dbdump.php:226
2042
  #: inc/features/class-jobtype-dbdump-pro.php:541
2043
- #: inc/features/class-jobtype-dbdump-pro.php:658
2044
  #@ backwpup
2045
  msgid "Database dump done!"
2046
  msgstr "Datenbank-Backup fertig!"
@@ -2201,7 +2189,7 @@ msgstr "Keine Ordner zum Sichern"
2201
  msgid "%1$d folders to back up."
2202
  msgstr "%1$d Ordner zu sichern"
2203
 
2204
- #: inc/class-jobtype-file.php:474
2205
  #, php-format
2206
  #@ backwpup
2207
  msgid "Folder \"%s\" is not readable!"
@@ -2323,8 +2311,8 @@ msgid "Size"
2323
  msgstr "Größe"
2324
 
2325
  #: inc/class-page-backups.php:233
2326
- #: inc/class-page-backwpup.php:162
2327
- #: inc/class-page-backwpup.php:216
2328
  #@ backwpup
2329
  msgid "Time"
2330
  msgstr "Zeit"
@@ -2384,67 +2372,67 @@ msgstr "Willkommen bei BackWPup"
2384
  msgid "Start wizard"
2385
  msgstr "Assistenten starten"
2386
 
2387
- #: inc/class-page-backwpup.php:135
2388
  #@ backwpup
2389
  msgid "Test the installation"
2390
  msgstr "Die Installation testen"
2391
 
2392
- #: inc/class-page-backwpup.php:136
2393
- #: inc/class-page-backwpup.php:139
2394
  #@ backwpup
2395
  msgid "Create a Job"
2396
  msgstr "Auftrag erstellen"
2397
 
2398
- #: inc/class-page-backwpup.php:141
2399
  #@ backwpup
2400
  msgid "Run the created job"
2401
  msgstr "Erstellten Auftrag starten"
2402
 
2403
- #: inc/class-page-backwpup.php:142
2404
  #@ backwpup
2405
  msgid "Check the job log"
2406
  msgstr "Logs des Auftrages prüfen"
2407
 
2408
- #: inc/class-page-backwpup.php:160
2409
  #@ backwpup
2410
  msgid "Next scheduled jobs"
2411
  msgstr "Nächste geplante Aufträge"
2412
 
2413
- #: inc/class-page-backwpup.php:163
2414
- #: inc/class-page-backwpup.php:216
2415
  #: inc/class-page-logs.php:114
2416
  #@ backwpup
2417
  msgid "Job"
2418
  msgstr "Auftrag"
2419
 
2420
- #: inc/class-page-backwpup.php:186
2421
  #, php-format
2422
  #@ backwpup
2423
  msgid "working since %d seconds"
2424
  msgstr "in Arbeit seit %d Sek."
2425
 
2426
- #: inc/class-page-backwpup.php:188
2427
  #: inc/class-page-jobs.php:436
2428
  #@ backwpup
2429
  msgid "Abort"
2430
  msgstr "Abbrechen"
2431
 
2432
- #: inc/class-page-backwpup.php:202
2433
  #@ backwpup
2434
  msgid "Edit Job"
2435
  msgstr "Auftrag bearbeiten"
2436
 
2437
- #: inc/class-page-backwpup.php:215
2438
  #@ backwpup
2439
  msgid "Last logs"
2440
  msgstr "Letzte Logs"
2441
 
2442
- #: inc/class-page-backwpup.php:216
2443
  #@ backwpup
2444
  msgid "Result"
2445
  msgstr "Ergebnis"
2446
 
2447
- #: inc/class-page-backwpup.php:246
2448
  #, php-format
2449
  #@ backwpup
2450
  msgid "%d ERROR"
@@ -2452,7 +2440,7 @@ msgid_plural "%d ERRORS"
2452
  msgstr[0] "%d FEHLER"
2453
  msgstr[1] "%d FEHLER"
2454
 
2455
- #: inc/class-page-backwpup.php:248
2456
  #, php-format
2457
  #@ backwpup
2458
  msgid "%d WARNING"
@@ -2460,7 +2448,7 @@ msgid_plural "%d WARNINGS"
2460
  msgstr[0] "%d WARNUNG"
2461
  msgstr[1] "%d WARNUNGEN"
2462
 
2463
- #: inc/class-page-backwpup.php:250
2464
  #: inc/class-page-logs.php:197
2465
  #@ backwpup
2466
  msgid "O.K."
@@ -2477,70 +2465,70 @@ msgstr "Überblick"
2477
  msgid "Not allowed!"
2478
  msgstr "Nicht erlaubt!"
2479
 
2480
- #: inc/class-page-editjob.php:170
2481
  #, php-format
2482
  #@ backwpup
2483
  msgid "Changes for job <i>%s</i> saved."
2484
  msgstr "Änderungen für den Auftrag <i>%s</i> gesichert."
2485
 
2486
- #: inc/class-page-editjob.php:312
2487
  #, php-format
2488
  #@ backwpup
2489
  msgid "ATTENTION: Job runs every %d minutes!"
2490
  msgstr "ACHTUNG: Auftrag läuft alle %d Minuten!"
2491
 
2492
- #: inc/class-page-editjob.php:318
2493
  #, php-format
2494
  #@ backwpup
2495
  msgid "ATTENTION: Job runs every %d hours!"
2496
  msgstr "ACHTUNG: Auftrag läuft alle %d Stunden!"
2497
 
2498
- #: inc/class-page-editjob.php:322
2499
  #@ backwpup
2500
  msgid "ATTENTION: Can't calculate cron!"
2501
  msgstr "ACHTUNG: Kann cron nicht berechnen!"
2502
 
2503
- #: inc/class-page-editjob.php:325
2504
  #@ backwpup
2505
  msgid "Next runtime:"
2506
  msgstr "Nächster Durchlauf:"
2507
 
2508
- #: inc/class-page-editjob.php:363
2509
  #: inc/class-page-settings.php:100
2510
  #@ backwpup
2511
  msgid "General"
2512
  msgstr "Allgemein"
2513
 
2514
- #: inc/class-page-editjob.php:363
2515
  #@ backwpup
2516
  msgid "Schedule"
2517
  msgstr "Planen"
2518
 
2519
- #: inc/class-page-editjob.php:378
2520
  #, php-format
2521
  #@ backwpup
2522
  msgid "To: %s"
2523
  msgstr "Zu: %s"
2524
 
2525
- #: inc/class-page-editjob.php:384
2526
  #, php-format
2527
  #@ backwpup
2528
  msgid "%s Job:"
2529
  msgstr "%s Auftrag: "
2530
 
2531
- #: inc/class-page-editjob.php:430
2532
  #: inc/features/class-wizard-job.php:228
2533
  #@ backwpup
2534
  msgid "Job tasks"
2535
  msgstr "Auftragsdetails"
2536
 
2537
- #: inc/class-page-editjob.php:446
2538
  #@ backwpup
2539
  msgid "Backup file creation settings"
2540
  msgstr "Einstellungen für das Erstellen der Backup Datei"
2541
 
2542
- #: inc/class-page-editjob.php:451
2543
- #: inc/class-page-editjob.php:454
2544
  #: inc/features/class-wizard-job.php:350
2545
  #: inc/features/class-wizard-job.php:353
2546
  #@ backwpup
@@ -2552,34 +2540,34 @@ msgstr "Backup Typ"
2552
  msgid "Sync file by file to destination"
2553
  msgstr "Synchronisiere Datei für Datei zum Zielverzeichnis"
2554
 
2555
- #: inc/class-page-editjob.php:463
2556
  #: inc/features/class-wizard-job.php:361
2557
  #@ backwpup
2558
  msgid "Create a backup archive"
2559
  msgstr "Backup erstellen"
2560
 
2561
- #: inc/class-page-editjob.php:509
2562
- #: inc/class-page-editjob.php:512
2563
  #@ backwpup
2564
  msgid "Archive Format"
2565
  msgstr "Archiv Format"
2566
 
2567
- #: inc/class-page-editjob.php:515
2568
- #: inc/class-page-editjob.php:517
2569
  #: inc/features/class-wizard-job.php:371
2570
  #: inc/features/class-wizard-job.php:373
2571
  #@ backwpup
2572
  msgid "Zip"
2573
  msgstr "Zip"
2574
 
2575
- #: inc/class-page-editjob.php:515
2576
  #@ backwpup
2577
  msgid "PHP Zip functions will be used if available (needs less memory). Otherwise the PCLZip Class will be used."
2578
  msgstr "PHP-Zip-Funktionen werden verwendet, sofern verfügbar (schneller). Ansonsten wird die Klasse PCLZip verwendet."
2579
 
2580
- #: inc/class-page-editjob.php:517
2581
- #: inc/class-page-editjob.php:522
2582
- #: inc/class-page-editjob.php:526
2583
  #: inc/features/class-wizard-job.php:373
2584
  #: inc/features/class-wizard-job.php:378
2585
  #: inc/features/class-wizard-job.php:382
@@ -2587,51 +2575,51 @@ msgstr "PHP-Zip-Funktionen werden verwendet, sofern verfügbar (schneller). Anso
2587
  msgid "Disabled because missing PHP function."
2588
  msgstr "Aufgrund fehlender PHP Funktion deaktiviert."
2589
 
2590
- #: inc/class-page-editjob.php:518
2591
  #: inc/features/class-wizard-job.php:374
2592
  #@ backwpup
2593
  msgid "Tar"
2594
  msgstr "Tar"
2595
 
2596
- #: inc/class-page-editjob.php:518
2597
  #@ backwpup
2598
  msgid "Tar (fast and less memory)"
2599
  msgstr "Tar (schnell und speicherschonend)"
2600
 
2601
- #: inc/class-page-editjob.php:520
2602
- #: inc/class-page-editjob.php:522
2603
  #: inc/features/class-wizard-job.php:376
2604
  #: inc/features/class-wizard-job.php:378
2605
  #@ backwpup
2606
  msgid "Tar GZip"
2607
  msgstr "Tar GZip"
2608
 
2609
- #: inc/class-page-editjob.php:520
2610
  #@ backwpup
2611
  msgid "A tarballed and GZipped archive (fast and less memory)"
2612
  msgstr "Ein .tar und .gz Archiv (schnell und schlank)"
2613
 
2614
- #: inc/class-page-editjob.php:524
2615
- #: inc/class-page-editjob.php:526
2616
  #: inc/features/class-wizard-job.php:380
2617
  #: inc/features/class-wizard-job.php:382
2618
  #@ backwpup
2619
  msgid "Tar BZip2"
2620
  msgstr "Tar BZip2"
2621
 
2622
- #: inc/class-page-editjob.php:524
2623
  #@ backwpup
2624
  msgid "A tarballed and BZipped archive (fast and less memory)"
2625
  msgstr "Ein .tar und .bz Archiv (schnell und schlank)"
2626
 
2627
- #: inc/class-page-editjob.php:532
2628
  #: inc/features/class-wizard-job.php:396
2629
  #@ backwpup
2630
  msgid "Where to store the files"
2631
  msgstr "Wo die Dateien abgelegt werden"
2632
 
2633
- #: inc/class-page-editjob.php:536
2634
- #: inc/class-page-editjob.php:539
2635
  #: inc/class-page-jobs.php:71
2636
  #: inc/features/class-wizard-job.php:50
2637
  #: inc/features/class-wizard-job.php:399
@@ -2639,81 +2627,81 @@ msgstr "Wo die Dateien abgelegt werden"
2639
  msgid "Destinations"
2640
  msgstr "Zielordner"
2641
 
2642
- #: inc/class-page-editjob.php:555
2643
  #@ backwpup
2644
  msgid "Send log to email address"
2645
  msgstr "Sende Log-Datei zur E-Mail Adresse"
2646
 
2647
- #: inc/class-page-editjob.php:563
2648
  #@ backwpup
2649
  msgid "Leave empty and don't get a log sent."
2650
  msgstr "Leerlassen um die Logs nicht zu senden"
2651
 
2652
- #: inc/class-page-editjob.php:567
2653
  #@ backwpup
2654
  msgid "When to send"
2655
  msgstr "Sendezeitpunkt"
2656
 
2657
- #: inc/class-page-editjob.php:572
2658
  #@ backwpup
2659
  msgid "Send mail with log only when errors occur during job execution."
2660
  msgstr "Sende eine E-Mail mit Protokoll nur, wenn während des Auftrags ein Fehler aufgetreten ist."
2661
 
2662
- #: inc/class-page-editjob.php:583
2663
  #@ backwpup
2664
  msgid "Schedule start setting"
2665
  msgstr "Planung Start Einstellungen"
2666
 
2667
- #: inc/class-page-editjob.php:587
2668
- #: inc/class-page-editjob.php:590
2669
  #@ backwpup
2670
  msgid "Start job"
2671
  msgstr "Auftrag starten"
2672
 
2673
- #: inc/class-page-editjob.php:594
2674
  #@ backwpup
2675
  msgid "manually only"
2676
  msgstr "nur manuell"
2677
 
2678
- #: inc/class-page-editjob.php:598
2679
  #@ backwpup
2680
  msgid "with WordPress cron"
2681
  msgstr "mit WordPress Cron"
2682
 
2683
- #: inc/class-page-editjob.php:605
2684
  #@ backwpup
2685
  msgid "with a link"
2686
  msgstr "mit einem Link"
2687
 
2688
- #: inc/class-page-editjob.php:623
2689
  #@ backwpup
2690
  msgid "Schedule execution time"
2691
  msgstr "Plane Ausführungszeit"
2692
 
2693
- #: inc/class-page-editjob.php:627
2694
- #: inc/class-page-editjob.php:630
2695
  #@ backwpup
2696
  msgid "Scheduler type"
2697
  msgstr "Planungstyp"
2698
 
2699
- #: inc/class-page-editjob.php:635
2700
  #@ backwpup
2701
  msgid "basic"
2702
  msgstr "einfach"
2703
 
2704
- #: inc/class-page-editjob.php:639
2705
  #@ backwpup
2706
  msgid "advanced"
2707
  msgstr "erweitert"
2708
 
2709
- #: inc/class-page-editjob.php:668
2710
- #: inc/class-page-editjob.php:736
2711
  #: inc/features/class-wizard-job.php:275
2712
  #@ backwpup
2713
  msgid "Scheduler"
2714
  msgstr "Planer"
2715
 
2716
- #: inc/class-page-editjob.php:673
2717
  #: inc/class-page-jobs.php:70
2718
  #: inc/class-page-logs.php:115
2719
  #: inc/features/class-wizard-job.php:280
@@ -2721,187 +2709,187 @@ msgstr "Planer"
2721
  msgid "Type"
2722
  msgstr "Typ"
2723
 
2724
- #: inc/class-page-editjob.php:678
2725
  #: inc/features/class-wizard-job.php:285
2726
  #@ backwpup
2727
  msgid "Hour"
2728
  msgstr "Stunde"
2729
 
2730
- #: inc/class-page-editjob.php:681
2731
  #: inc/features/class-wizard-job.php:288
2732
  #@ backwpup
2733
  msgid "Minute"
2734
  msgstr "Minute"
2735
 
2736
- #: inc/class-page-editjob.php:685
2737
  #: inc/features/class-wizard-job.php:292
2738
  #@ backwpup
2739
  msgid "monthly"
2740
  msgstr "monatlich"
2741
 
2742
- #: inc/class-page-editjob.php:687
2743
  #: inc/features/class-wizard-job.php:294
2744
  #@ backwpup
2745
  msgid "on"
2746
  msgstr "am"
2747
 
2748
- #: inc/class-page-editjob.php:697
2749
  #: inc/features/class-wizard-job.php:304
2750
  #@ backwpup
2751
  msgid "weekly"
2752
  msgstr "wöchentlich"
2753
 
2754
- #: inc/class-page-editjob.php:699
2755
- #: inc/class-page-editjob.php:806
2756
  #: inc/features/class-wizard-job.php:306
2757
  #@ backwpup
2758
  msgid "Sunday"
2759
  msgstr "Sonntag"
2760
 
2761
- #: inc/class-page-editjob.php:700
2762
- #: inc/class-page-editjob.php:807
2763
  #: inc/features/class-wizard-job.php:307
2764
  #@ backwpup
2765
  msgid "Monday"
2766
  msgstr "Montag"
2767
 
2768
- #: inc/class-page-editjob.php:701
2769
- #: inc/class-page-editjob.php:808
2770
  #: inc/features/class-wizard-job.php:308
2771
  #@ backwpup
2772
  msgid "Tuesday"
2773
  msgstr "Dienstag"
2774
 
2775
- #: inc/class-page-editjob.php:702
2776
- #: inc/class-page-editjob.php:809
2777
  #: inc/features/class-wizard-job.php:309
2778
  #@ backwpup
2779
  msgid "Wednesday"
2780
  msgstr "Mittwoch"
2781
 
2782
- #: inc/class-page-editjob.php:703
2783
- #: inc/class-page-editjob.php:810
2784
  #: inc/features/class-wizard-job.php:310
2785
  #@ backwpup
2786
  msgid "Thursday"
2787
  msgstr "Donnerstag"
2788
 
2789
- #: inc/class-page-editjob.php:704
2790
- #: inc/class-page-editjob.php:811
2791
  #: inc/features/class-wizard-job.php:311
2792
  #@ backwpup
2793
  msgid "Friday"
2794
  msgstr "Freitag"
2795
 
2796
- #: inc/class-page-editjob.php:705
2797
- #: inc/class-page-editjob.php:812
2798
  #: inc/features/class-wizard-job.php:312
2799
  #@ backwpup
2800
  msgid "Saturday"
2801
  msgstr "Samstag"
2802
 
2803
- #: inc/class-page-editjob.php:715
2804
  #: inc/features/class-wizard-job.php:322
2805
  #@ backwpup
2806
  msgid "daily"
2807
  msgstr "täglich"
2808
 
2809
- #: inc/class-page-editjob.php:725
2810
  #: inc/features/class-wizard-job.php:332
2811
  #@ backwpup
2812
  msgid "hourly"
2813
  msgstr "stündlich"
2814
 
2815
- #: inc/class-page-editjob.php:741
2816
- #: inc/class-page-editjob.php:754
2817
- #: inc/class-page-editjob.php:766
2818
- #: inc/class-page-editjob.php:780
2819
- #: inc/class-page-editjob.php:802
2820
  #@ backwpup
2821
  msgid "Any (*)"
2822
  msgstr "Alle (*)"
2823
 
2824
- #: inc/class-page-editjob.php:751
2825
  #@ backwpup
2826
  msgid "Hours:"
2827
  msgstr "Stunden:"
2828
 
2829
- #: inc/class-page-editjob.php:764
2830
  #@ backwpup
2831
  msgid "Day of Month:"
2832
  msgstr "Tag des Monats:"
2833
 
2834
- #: inc/class-page-editjob.php:778
2835
  #@ backwpup
2836
  msgid "Month:"
2837
  msgstr "Monat:"
2838
 
2839
- #: inc/class-page-editjob.php:784
2840
  #@ backwpup
2841
  msgid "January"
2842
  msgstr "Januar"
2843
 
2844
- #: inc/class-page-editjob.php:785
2845
  #@ backwpup
2846
  msgid "February"
2847
  msgstr "Februar"
2848
 
2849
- #: inc/class-page-editjob.php:786
2850
  #@ backwpup
2851
  msgid "March"
2852
  msgstr "März"
2853
 
2854
- #: inc/class-page-editjob.php:787
2855
  #@ backwpup
2856
  msgid "April"
2857
  msgstr "April"
2858
 
2859
- #: inc/class-page-editjob.php:788
2860
  #@ backwpup
2861
  msgid "May"
2862
  msgstr "Mai"
2863
 
2864
- #: inc/class-page-editjob.php:789
2865
  #@ backwpup
2866
  msgid "June"
2867
  msgstr "Juni"
2868
 
2869
- #: inc/class-page-editjob.php:790
2870
  #@ backwpup
2871
  msgid "July"
2872
  msgstr "Juli"
2873
 
2874
- #: inc/class-page-editjob.php:791
2875
  #@ backwpup
2876
  msgid "August"
2877
  msgstr "August"
2878
 
2879
- #: inc/class-page-editjob.php:792
2880
  #@ backwpup
2881
  msgid "September"
2882
  msgstr "September"
2883
 
2884
- #: inc/class-page-editjob.php:793
2885
  #@ backwpup
2886
  msgid "October"
2887
  msgstr "Oktober"
2888
 
2889
- #: inc/class-page-editjob.php:794
2890
  #@ backwpup
2891
  msgid "November"
2892
  msgstr "November"
2893
 
2894
- #: inc/class-page-editjob.php:795
2895
  #@ backwpup
2896
  msgid "December"
2897
  msgstr "Dezember"
2898
 
2899
- #: inc/class-page-editjob.php:800
2900
  #@ backwpup
2901
  msgid "Day of Week:"
2902
  msgstr "Wochentag:"
2903
 
2904
- #: inc/class-page-editjob.php:836
2905
  #@ backwpup
2906
  msgid "Save changes"
2907
  msgstr "Änderungen speichern"
@@ -3038,7 +3026,7 @@ msgstr "Arbeitsfläche schließen"
3038
  msgid "close"
3039
  msgstr "schließen"
3040
 
3041
- #: inc/class-page-jobs.php:566
3042
  #@ backwpup
3043
  msgid "Job end"
3044
  msgstr "Auftragsende"
@@ -3410,7 +3398,7 @@ msgstr "Geladene PHP Erweiterungen"
3410
  msgid "Job Types"
3411
  msgstr "Auftragstypen"
3412
 
3413
- #: inc/class-page-editjob.php:415
3414
  #@ backwpup
3415
  msgid "Name"
3416
  msgstr "Name"
@@ -3654,7 +3642,7 @@ msgid "Account Name:"
3654
  msgstr "Kontoname/ Benutzername:"
3655
 
3656
  #: inc/features/class-destination-msazure-pro.php:15
3657
- #: inc/features/class-destination-s3-pro.php:40
3658
  #@ backwpup
3659
  msgid "Access Key:"
3660
  msgstr "Zugangsschlüssel (Access Key):"
@@ -3776,77 +3764,77 @@ msgstr "Datei %s in der Rackspace Cloud gelöscht."
3776
  msgid "Select a S3 service:"
3777
  msgstr "Wähle einen S3 service: "
3778
 
3779
- #: inc/features/class-destination-s3-pro.php:37
3780
  #@ backwpup
3781
  msgid "or set a S3 Server url:"
3782
  msgstr "oder setze eine S3 Server URL:"
3783
 
3784
- #: inc/features/class-destination-s3-pro.php:43
3785
  #@ backwpup
3786
  msgid "Secret Key:"
3787
  msgstr "Secret Key:"
3788
 
3789
- #: inc/features/class-destination-s3-pro.php:46
3790
  #@ backwpup
3791
  msgid "Bucket:"
3792
  msgstr "Bucket:"
3793
 
3794
- #: inc/features/class-destination-s3-pro.php:56
3795
  #@ backwpup
3796
  msgid "New Bucket:"
3797
  msgstr "Neues Bucket: "
3798
 
3799
- #: inc/features/class-destination-s3-pro.php:58
3800
  #@ backwpup
3801
  msgid "Folder in bucket:"
3802
  msgstr "Ordner im Bucket:"
3803
 
3804
- #: inc/features/class-destination-s3-pro.php:126
3805
  #, php-format
3806
  #@ backwpup
3807
  msgid "Bucket %s could not be created."
3808
  msgstr "Bucket %s konnte nicht erstellt werden."
3809
 
3810
- #: inc/features/class-destination-s3-pro.php:150
3811
  #, php-format
3812
  #@ backwpup
3813
  msgid "%d. Trying to sync files to S3 Service &hellip;"
3814
  msgstr "%d. Versuche, die Dateien mit dem S3-Service zu synchronisieren &hellip;"
3815
 
3816
- #: inc/features/class-destination-s3-pro.php:163
3817
  #, php-format
3818
  #@ backwpup
3819
  msgid "Connected to S3 Bucket \"%1$s\" from \"%3$s\" in %2$s."
3820
  msgstr "Mit S3 Bucket \"%1$s\" von \"%3$s\" in %2$s verbunden."
3821
 
3822
- #: inc/features/class-destination-s3-pro.php:173
3823
  #@ backwpup
3824
  msgid "Getting files list from S3."
3825
  msgstr "Ziehe Dateilliste von S3."
3826
 
3827
- #: inc/features/class-destination-s3-pro.php:226
3828
  #@ backwpup
3829
  msgid "Upload changed files to S3."
3830
  msgstr "Geänderte Dateien zu S3 hochladen."
3831
 
3832
- #: inc/features/class-destination-s3-pro.php:238
3833
  #, php-format
3834
  #@ backwpup
3835
  msgid "File %s Uploaded to S3."
3836
  msgstr "Datei %s zu S3 hochgeladen."
3837
 
3838
- #: inc/features/class-destination-s3-pro.php:255
3839
  #, php-format
3840
  #@ backwpup
3841
  msgid "Extra file %s uploaded to S3."
3842
  msgstr "Extra Datei %s zu S3 hochgeladen."
3843
 
3844
- #: inc/features/class-destination-s3-pro.php:264
3845
  #@ backwpup
3846
  msgid "Delete nonexistent files on S3"
3847
  msgstr "Es werden keine existierenden Dateien in S3 gelöscht."
3848
 
3849
- #: inc/features/class-destination-s3-pro.php:271
3850
  #, php-format
3851
  #@ backwpup
3852
  msgid "File %s deleted on S3."
@@ -3948,43 +3936,43 @@ msgstr "Datenbank:"
3948
  msgid "Dump type"
3949
  msgstr "Backup-Typ"
3950
 
3951
- #: inc/class-jobtype-dbdump.php:223
3952
  #: inc/features/class-jobtype-dbdump-pro.php:538
3953
- #: inc/features/class-jobtype-dbdump-pro.php:655
3954
  #, php-format
3955
  #@ backwpup
3956
  msgid "Added database dump \"%1$s\" with %2$s to backup file list"
3957
  msgstr "Datenbank-Backup erstellt \"%1$s\" mit %2$s zur Backup-Liste"
3958
 
3959
- #: inc/features/class-jobtype-dbdump-pro.php:640
3960
  #@ backwpup
3961
  msgid "Compressing done."
3962
  msgstr "Komprimierung erledigt."
3963
 
3964
- #: inc/features/class-jobtype-dbdump-pro.php:731
3965
  #@ backwpup
3966
  msgid "No tables for XML dump"
3967
  msgstr "Es gibt keine Tabellen für ein XML-Backup"
3968
 
3969
- #: inc/features/class-jobtype-dbdump-pro.php:768
3970
  #, php-format
3971
  #@ backwpup
3972
  msgid "Dump database create view \"%s\""
3973
  msgstr "Datenbank-Backup erstellt \"%s\""
3974
 
3975
- #: inc/features/class-jobtype-dbdump-pro.php:825
3976
  #, php-format
3977
  #@ backwpup
3978
  msgid "Dump table \"%s\" data"
3979
  msgstr "Backup der Tabellen \"%s\""
3980
 
3981
- #: inc/features/class-jobtype-dbdump-pro.php:894
3982
  #, php-format
3983
  #@ backwpup
3984
  msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
3985
  msgstr "XML-Backup der Datenbank \"%1$s\" mit %2$s zur Backup-Liste"
3986
 
3987
- #: inc/features/class-jobtype-dbdump-pro.php:897
3988
  #@ backwpup
3989
  msgid "Database XML dump done!"
3990
  msgstr "XML-Backup der Datenbank erstellt."
@@ -4442,7 +4430,7 @@ msgstr "Auftragsstart"
4442
  msgid "No destination correctly defined for backup! Please correct job settings."
4443
  msgstr "Es wurde kein korrektes Backupziel definiert! Bitte überprüfe die Auftragseinstellungen."
4444
 
4445
- #: inc/class-job.php:1245
4446
  #@ backwpup
4447
  msgid "WordPress Maintenance mode not activated on Manual run. Because it disappears displaying of working progress."
4448
  msgstr "Der WordPress-Wartungsmodus wurde nicht aktiviert, da der Auftrag manuell gestartet wurde. Dies würde die Fortschrittsanzeige behindern."
@@ -4543,7 +4531,7 @@ msgstr "Datei Koprimierung"
4543
  msgid "Plugin list file name"
4544
  msgstr "Plugin listen Datei Name"
4545
 
4546
- #: inc/class-page-backwpup.php:138
4547
  #@ backwpup
4548
  msgid "Check the installation"
4549
  msgstr "Überprüfe die Installation"
@@ -4627,7 +4615,7 @@ msgstr "WP Cron abgeschaltet"
4627
  msgid "%d. Try to Sync files to Folder &hellip;"
4628
  msgstr "%d. Versuch Dateien in eine Verzeichnis zu Synchronisierungen &hellip;"
4629
 
4630
- #: inc/class-jobtype-dbdump.php:162
4631
  #: inc/features/class-jobtype-dbdump-pro.php:466
4632
  #, php-format
4633
  #@ backwpup
@@ -4640,12 +4628,12 @@ msgstr "%d. Versuche, das Datenbank-Backup zu erstellen …"
4640
  msgid "%d. Try for MySQL System dump &hellip;"
4641
  msgstr "%d. Versuche, das MySQL-System-Backup zu erstellen …"
4642
 
4643
- #: inc/features/class-jobtype-dbdump-pro.php:634
4644
  #@ backwpup
4645
  msgid "Compressing file &hellip;"
4646
  msgstr "Komprimiere Datei &hellip;"
4647
 
4648
- #: inc/features/class-jobtype-dbdump-pro.php:676
4649
  #, php-format
4650
  #@ backwpup
4651
  msgid "%d. Try for database XML dump &hellip;"
@@ -4661,19 +4649,19 @@ msgstr "E-Mail"
4661
  msgid "Backup to email"
4662
  msgstr "Sicherung per E-Mail"
4663
 
4664
- #: inc/class-destination-email.php:77
4665
  #@ backwpup
4666
  msgid "Max. file size where email send with. 0 = unlimited"
4667
  msgstr "Maximale Datei Größe des Archives das gesendet werden soll. 0 = unbegrenzt."
4668
 
4669
- #: inc/class-destination-email.php:231
4670
  #, php-format
4671
  #@ backwpup
4672
  msgid "Sending email to %s &hellip;"
4673
  msgstr "Sende E-Mail an %s &hellip;"
4674
 
4675
- #: inc/class-destination-email.php:322
4676
- #: inc/class-destination-email.php:443
4677
  #@ backwpup
4678
  msgid "Error while sending email!"
4679
  msgstr "Fehler beim senden der E-Mail!"
@@ -4815,17 +4803,17 @@ msgstr "BackWPup unterstützt mehrere Cloud-Dienste parallel. Damit wird sicherg
4815
  msgid "Now back up!"
4816
  msgstr "Sichern Sie Ihre Daten jetzt!"
4817
 
4818
- #: inc/class-page-backwpup.php:131
4819
  #@ backwpup
4820
  msgid "First steps"
4821
  msgstr "Erste Schritte"
4822
 
4823
- #: inc/class-page-editjob.php:427
4824
  #@ backwpup
4825
  msgid "Tasks"
4826
  msgstr "Aufgaben"
4827
 
4828
- #: inc/class-page-editjob.php:614
4829
  #@ backwpup
4830
  msgid "Start job with CLI"
4831
  msgstr "Auftrag per CLI starten"
@@ -4955,7 +4943,7 @@ msgstr "Es gab Fehler. Bitte korrigieren Sie diese, damit BackWPup arbeiten kann
4955
  msgid "%d. Try to send backup file to Dropbox &hellip;"
4956
  msgstr "%d. Versuche, Backup zur Dropbox zu schicken …"
4957
 
4958
- #: inc/class-destination-email.php:219
4959
  #, php-format
4960
  #@ backwpup
4961
  msgid "%d. Try to send backup with email &hellip;"
@@ -4993,7 +4981,7 @@ msgstr "Bitte geben Sie einen Namen ein"
4993
  msgid "Attention! You have updated from version 2.x"
4994
  msgstr "Achtung! Sie haben von Version 2.x aktualisiert."
4995
 
4996
- #: inc/class-page-editjob.php:739
4997
  #@ backwpup
4998
  msgid "Minutes:"
4999
  msgstr "Minuten:"
@@ -5060,22 +5048,22 @@ msgstr "Google Storage ist jetzt in S3"
5060
  msgid "All your passwords"
5061
  msgstr "All Ihre Passwörter"
5062
 
5063
- #: inc/class-page-editjob.php:411
5064
  #@ backwpup
5065
  msgid "Name of this job"
5066
  msgstr "Name des Auftrags"
5067
 
5068
- #: inc/class-page-editjob.php:423
5069
  #@ backwpup
5070
  msgid "What the job does"
5071
  msgstr "Was der Auftrag tut"
5072
 
5073
- #: inc/class-page-editjob.php:459
5074
  #@ backwpup
5075
  msgid "Synchronize file by file to destination"
5076
  msgstr "Synchronisiere Datei für Datei zum Auftragsziel"
5077
 
5078
- #: inc/class-page-editjob.php:469
5079
  #@ backwpup
5080
  msgid "Archive name"
5081
  msgstr "Archivname"
@@ -5168,125 +5156,125 @@ msgstr "Mit BackWPup können Sie automatische Datenbank-Backups planen. Mit eine
5168
  msgid "You can back up all your attachments, also all system files, plugins and themes in a single file. You can <a href=\"%s\">create a job</a> to update a backup copy of your file system only when files are changed."
5169
  msgstr "Sie können all Ihre Anhänge sichern, ebenso alle Systemdateien, Plugins und Themes – in einer einzigen Datei. Sie können einen <a href=\\\"%s\\\">Auftrag erstellen</a>, um die Sicherungskopie nur dann zu aktualisieren, wenn sich tatsächlich eine Datei geändert hat."
5170
 
5171
- #: inc/class-page-editjob.php:607
5172
  #@ backwpup
5173
  msgid "Copy the link for an external start. This option has to be activated to make the link work."
5174
  msgstr "Kopieren Sie den Link für einen externen Auftragsstart. Diese Option muss erst aktiviert werden, damit der Link funktioniert."
5175
 
5176
- #: inc/class-page-editjob.php:617
5177
  #, php-format
5178
  #@ backwpup
5179
  msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline or <a href=\"%s\">get the start script</a>."
5180
  msgstr "Verwenden Sie <a href=\"http://wp-cli.org/\">WP-CLI</a>, um Aufträge per Kommandozeile auszulösen, oder <a href=\"%s\">dieses Start-Script</a>."
5181
 
5182
- #: inc/class-page-editjob.php:618
5183
  #@ backwpup
5184
  msgid "Generate a server script file to let the job start with the server’s cron on command line interface. Or use WP-CLI commands."
5185
  msgstr "Erzeugen Sie ein Serverscript, um einen Auftrag per Kommandoziele auszulösen, oder benutzen Sie WP-CLI."
5186
 
5187
- #: inc/class-page-editjob.php:476
5188
  #, php-format
5189
  #@ backwpup
5190
  msgid "%d = Day of the month, 2 digits with leading zeros"
5191
  msgstr "%d = Tag des Monat, zwei Ziffern mit führender Null"
5192
 
5193
- #: inc/class-page-editjob.php:477
5194
  #, php-format
5195
  #@ backwpup
5196
  msgid "%j = Day of the month without leading zeros"
5197
  msgstr "%j = Tag des Monat ohne führend Null"
5198
 
5199
- #: inc/class-page-editjob.php:478
5200
  #, php-format
5201
  #@ backwpup
5202
  msgid "%m = Numeric representation of a month, two digits with leading zeros"
5203
  msgstr "%m = Numerische Angabe des Monats, zwei Ziffern mit führender Null"
5204
 
5205
- #: inc/class-page-editjob.php:479
5206
  #, php-format
5207
  #@ backwpup
5208
  msgid "%n = Numeric representation of a month without leading zeros"
5209
  msgstr "%n = Numerische Angabe des Monats ohne führende Null"
5210
 
5211
- #: inc/class-page-editjob.php:480
5212
  #, php-format
5213
  #@ backwpup
5214
  msgid "%Y = Four digit representation of a year"
5215
  msgstr "%Y = Vierstellige Angabe des Jahres"
5216
 
5217
- #: inc/class-page-editjob.php:481
5218
  #, php-format
5219
  #@ backwpup
5220
  msgid "%y = Two digit representation of a year with leading zeros"
5221
  msgstr "%y = Zweistellige Angabe des Jahres mit führender Null"
5222
 
5223
- #: inc/class-page-editjob.php:482
5224
  #, php-format
5225
  #@ backwpup
5226
  msgid "%a = Lowercase Ante meridiem and Post meridiem"
5227
  msgstr "%a = Klein geschriebene Tageszeit ante meridiem und post meridiem"
5228
 
5229
- #: inc/class-page-editjob.php:483
5230
  #, php-format
5231
  #@ backwpup
5232
  msgid "%A = Uppercase Ante meridiem and Post meridiem"
5233
  msgstr "%A = Groß geschriebene Tageszeit ante meridiem und post meridiem"
5234
 
5235
- #: inc/class-page-editjob.php:484
5236
  #, php-format
5237
  #@ backwpup
5238
  msgid "%B = Swatch Internet time"
5239
  msgstr "%B = Swatch-Internetzeit"
5240
 
5241
- #: inc/class-page-editjob.php:485
5242
  #, php-format
5243
  #@ backwpup
5244
  msgid "%g = 12-hour format of an hour without leading zeros"
5245
  msgstr "%g = Zwölfstundenformat ohne führende Null"
5246
 
5247
- #: inc/class-page-editjob.php:486
5248
  #, php-format
5249
  #@ backwpup
5250
  msgid "%G = 24-hour format of an hour without leading zeros"
5251
  msgstr "%G = Vierundzwanzigstundenformat ohne führende Null"
5252
 
5253
- #: inc/class-page-editjob.php:487
5254
  #, php-format
5255
  #@ backwpup
5256
  msgid "%h = 12-hour format of an hour with leading zeros"
5257
  msgstr "%h = Zwölfstundenformat mit führender Null"
5258
 
5259
- #: inc/class-page-editjob.php:488
5260
  #, php-format
5261
  #@ backwpup
5262
  msgid "%H = 24-hour format of an hour with leading zeros"
5263
  msgstr "%H = Vierundzwanzigstundenformat mit führender Null"
5264
 
5265
- #: inc/class-page-editjob.php:489
5266
  #, php-format
5267
  #@ backwpup
5268
  msgid "%i = Minutes with leading zeros"
5269
  msgstr "%i = Minutenangabe mit führender Null"
5270
 
5271
- #: inc/class-page-editjob.php:490
5272
  #, php-format
5273
  #@ backwpup
5274
  msgid "%s = Seconds with leading zeros"
5275
  msgstr "%s = Sekundenangabe mit führender Null"
5276
 
5277
- #: inc/class-page-editjob.php:491
5278
  #, php-format
5279
  #@ backwpup
5280
  msgid "%u = Microseconds"
5281
  msgstr "%u = Mikrosekunden"
5282
 
5283
- #: inc/class-page-editjob.php:492
5284
  #, php-format
5285
  #@ backwpup
5286
  msgid "%U = Seconds since the Unix epoch"
5287
  msgstr "%U = Sekunden seit Beginn der UNIX-Zeit"
5288
 
5289
- #: inc/class-page-editjob.php:496
5290
  #@ backwpup
5291
  msgid "Replacement patterns:"
5292
  msgstr "Ersetzungsmuster:"
@@ -5345,7 +5333,7 @@ msgstr "Erstellen Sie erst einen Auftrag, und planen Sie, was Sie sichern möcht
5345
  msgid "First set up a job, and plan what you want to save. Please note: the plugin author gives no warranty for your data."
5346
  msgstr "Erstellen Sie erst einen Auftrag, und planen Sie, was Sie sichern möchten. Bitte beachten Sie: Die Pluginautoren übernehmen keine Gewähr für Ihre Daten."
5347
 
5348
- #: inc/class-page-editjob.php:303
5349
  #@ backwpup
5350
  msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
5351
  msgstr "Als <a href=\\\"http://de.wikipedia.org/wiki/Cron\\\">Cron-Job</a> ausführen:"
@@ -5414,7 +5402,7 @@ msgstr "Spezialoption"
5414
  msgid "Include special files"
5415
  msgstr "Spezielle Dateien einschließen"
5416
 
5417
- #: inc/features/class-jobtype-dbdump-pro.php:785
5418
  #, php-format
5419
  #@ backwpup
5420
  msgid "Dump database structure \"%s\""
@@ -5428,14 +5416,14 @@ msgstr "BackWPup Braucht PHP in der Version 5.2.6 oder höher und WordPress in d
5428
  #: inc/class-create-archive.php:78
5429
  #: inc/class-create-archive.php:128
5430
  #: inc/class-create-archive.php:141
5431
- #: inc/class-mysqldump.php:104
5432
  #@ backwpup
5433
  msgid "Functions for gz compression not available"
5434
  msgstr "Die Funktionen für die Gzip-Kompression sind nicht verfügbar."
5435
 
5436
  #: inc/class-create-archive.php:93
5437
  #: inc/class-create-archive.php:147
5438
- #: inc/class-mysqldump.php:108
5439
  #@ backwpup
5440
  msgid "Functions for bz2 compression not available"
5441
  msgstr "Die Funktionen für die Bz2-Kompression sind nicht verfügbar."
@@ -5466,30 +5454,30 @@ msgctxt "Text of ZipArchive status Massage"
5466
  msgid "ZipArchive returns status: %s"
5467
  msgstr "Das Zip-Archive liefert den Status: %s"
5468
 
5469
- #: inc/class-job.php:1603
5470
  #, php-format
5471
  #@ backwpup
5472
  msgid "%d. Trying to create backup archive &hellip;"
5473
  msgstr "%d. Versuche, Backup zu erstellen …"
5474
 
5475
- #: inc/class-job.php:1610
5476
  #, php-format
5477
  #@ backwpup
5478
  msgctxt "Archive compression method"
5479
  msgid "Compression method is %s"
5480
  msgstr "Komprimierungsmethode ist %s"
5481
 
5482
- #: inc/class-job.php:1637
5483
  #@ backwpup
5484
  msgid "Backup archive created."
5485
  msgstr "Backup wurde erstellt."
5486
 
5487
- #: inc/class-mysqldump.php:120
5488
  #@ backwpup
5489
  msgid "Can not open dump file"
5490
  msgstr "Konnte Backup nicht öffnen"
5491
 
5492
- #: inc/class-mysqldump.php:381
5493
  #@ backwpup
5494
  msgid "Error on writing to file!"
5495
  msgstr "Fehler beim Schreiben!"
@@ -5510,14 +5498,14 @@ msgstr "SQL-Datei"
5510
  msgid "XML File (phpMyAdmin schema)"
5511
  msgstr "XML-Datei (phpMyAdmin-Schema9"
5512
 
5513
- #: inc/features/class-jobtype-dbdump-pro.php:627
5514
  #, php-format
5515
  #@ backwpup
5516
  msgctxt "Executed shell_exec() command"
5517
  msgid "CLI Exec: %s"
5518
  msgstr "CLI-Exec: %s"
5519
 
5520
- #: inc/features/class-jobtype-dbdump-pro.php:630
5521
  #, php-format
5522
  #@ backwpup
5523
  msgctxt "Output of a shell_exec()"
@@ -5567,14 +5555,14 @@ msgstr "Der Dateiname kann nicht leer sein."
5567
  msgid "This archive method can only add one file"
5568
  msgstr "Diese Archive-Methode kann nur eine einziges Datei sichern."
5569
 
5570
- #: inc/class-mysqldump.php:91
5571
  #, php-format
5572
  #@ backwpup
5573
  msgctxt "Database Charset"
5574
  msgid "Can not set DB charset to %s"
5575
  msgstr "Kann Datenbank-Zeichenkodierung nicht auf %s setzen."
5576
 
5577
- #: inc/class-page-backwpup.php:150
5578
  #@ backwpup
5579
  msgid "One click backup"
5580
  msgstr "Ein-Klick-Backup"
@@ -5584,7 +5572,7 @@ msgstr "Ein-Klick-Backup"
5584
  msgid "Path to the mysqldump file so a backup can be made with it. If it is correct and <em>shell_exec</em> is active the backup will made with a system command. If <em>shell_exec</em> not active this is disabled"
5585
  msgstr "Pfad zur MySQL-Datei, mit der ein Backup erstellt werden kann. Wenn es korrekt ist und <em>shell_exec</em> funktioniert, kann das Backup mit einem Systemkommando ausgelöst werden. Dies wird deaktiviert, wenn <em>shell_exec</em> nicht verfügbar ist."
5586
 
5587
- #: inc/class-page-backwpup.php:152
5588
  #@ backwpup
5589
  msgid "Generate a database backup of WordPress tables and download it immediately!"
5590
  msgstr "Datenbank-Backup der WordPress-Tabellen erstellen und herunterladen."
@@ -5604,7 +5592,7 @@ msgctxt "File path to add to archive"
5604
  msgid "File %s does not exist or is not readable"
5605
  msgstr "Die Datei %s existiert nicht, oder sie ist nicht lesbar."
5606
 
5607
- #: inc/class-page-backwpup.php:152
5608
  #@ backwpup
5609
  msgid "Download database backup"
5610
  msgstr "Datenbank-Backup herunterladen"
@@ -5630,12 +5618,6 @@ msgctxt "Plugin name; Plugin Version; WordPress Version"
5630
  msgid "[INFO] %1$s version %2$s; WordPress version %3$s; A project of Inpsyde GmbH developed by Daniel Hüsken"
5631
  msgstr "[INFO] %1$s Version %2$s; WordPress Version %3$s; Ein Projekt der Inpsyde GmbH, entwickelt von Daniel Hüsken"
5632
 
5633
- #. translators: plugin header field 'Version'
5634
- #: backwpup.php:0
5635
- #@ backwpup
5636
- msgid "3.0.0"
5637
- msgstr "3.0.0"
5638
-
5639
  #: inc/class-page-about.php:103
5640
  #@ backwpup
5641
  msgid "Please activate your license"
@@ -5670,14 +5652,14 @@ msgstr "%1$s Version %2$s. Ein Projekt der <a href=\"http://inpsyde.com\">Inpsyd
5670
  msgid "Plugin on wordpress.org"
5671
  msgstr "Plugin auf wordpress.org"
5672
 
5673
- #: inc/class-job.php:1559
5674
  #, php-format
5675
  #@ backwpup
5676
  msgctxt "Folder name"
5677
  msgid "Folder %s not exists"
5678
  msgstr "Verzeichnis %s existiert nicht"
5679
 
5680
- #: inc/class-job.php:1563
5681
  #, php-format
5682
  #@ backwpup
5683
  msgctxt "Folder name"
@@ -5871,3 +5853,55 @@ msgstr "http://marketpress.de/product/backwpup-pro/"
5871
  msgid "GET PRO"
5872
  msgstr "GET PRO"
5873
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: BackWPup Pro v3.0.1\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2013-02-06 17:42+0100\n"
6
+ "PO-Revision-Date: 2013-02-28 11:30:16-0600\n"
7
  "Last-Translator: Frank Bueltge <frank@bueltge.de>\n"
8
  "Language-Team: INPSYDE <info@inpsyde.com>\n"
9
  "MIME-Version: 1.0\n"
143
  msgstr "Abgebrochen, da seit 2 Stunden kein Fortschritt!"
144
 
145
  #: inc/class-cron.php:84
146
+ #: inc/class-job.php:1208
147
  #, php-format
148
  #@ backwpup
149
  msgid "[%3$s] BackWPup log %1$s: %2$s"
150
  msgstr "[%3$s] BackWPup Log %1$s: %2$s"
151
 
152
  #: inc/class-cron.php:84
153
+ #: inc/class-job.php:1204
154
  #@ backwpup
155
  msgid "ERROR"
156
  msgstr "FEHLER"
271
  #: inc/class-destination-ftp.php:83
272
  #: inc/class-destination-msazure.php:102
273
  #: inc/class-destination-rsc.php:111
274
+ #: inc/class-destination-s3.php:177
275
  #: inc/class-destination-sugarsync.php:116
276
  #: inc/features/class-destination-dropbox-pro.php:75
277
  #: inc/features/class-destination-folder-pro.php:27
278
  #: inc/features/class-destination-msazure-pro.php:32
279
  #: inc/features/class-destination-rsc-pro.php:56
280
+ #: inc/features/class-destination-s3-pro.php:64
281
  #@ backwpup
282
  msgid "Number of files to hold in folder."
283
  msgstr "Anzahl der Dateien, die im Ordner behalten werden"
287
  #: inc/class-destination-ftp.php:83
288
  #: inc/class-destination-msazure.php:102
289
  #: inc/class-destination-rsc.php:111
290
+ #: inc/class-destination-s3.php:177
291
  #: inc/class-destination-sugarsync.php:116
292
  #: inc/features/class-destination-dropbox-pro.php:75
293
  #: inc/features/class-destination-folder-pro.php:27
294
  #: inc/features/class-destination-msazure-pro.php:32
295
  #: inc/features/class-destination-rsc-pro.php:56
296
+ #: inc/features/class-destination-s3-pro.php:64
297
  #@ backwpup
298
  msgid "Oldest files will be deleted first. 0 = no deletion"
299
  msgstr "Älteste Dateien werden als erstes gelöscht. 0 = keine Löschung"
303
  #: inc/class-destination-ftp.php:87
304
  #: inc/class-destination-msazure.php:106
305
  #: inc/class-destination-rsc.php:115
306
+ #: inc/class-destination-s3.php:181
307
  #: inc/class-destination-sugarsync.php:120
308
  #: inc/features/class-destination-folder-pro.php:32
309
  #: inc/features/class-destination-msazure-pro.php:37
310
  #: inc/features/class-destination-rsc-pro.php:61
311
+ #: inc/features/class-destination-s3-pro.php:69
312
  #@ backwpup
313
  msgid "Do not delete files on sync to destination!"
314
  msgstr "Lösche keine Dateien beim Synchronisieren im Zielverzeichnis"
418
  msgid "Host:"
419
  msgstr "Host (Server):"
420
 
421
+ #: inc/class-destination-email.php:127
422
  #: inc/class-destination-ftp.php:46
423
  #: inc/features/class-destination-ftp-pro.php:17
424
  #@ backwpup
596
  msgstr[0] "Eine Datei auf dem FTP-Server gelöscht"
597
  msgstr[1] "%d Dateien auf dem FTP-Server gelöscht"
598
 
599
+ #: inc/class-destination-email.php:55
600
+ #: inc/class-destination-email.php:58
 
601
  #@ backwpup
602
  msgid "Email address"
603
  msgstr "E-Mail Adresse"
604
 
605
+ #: inc/class-destination-email.php:62
606
  #: inc/features/class-destination-email-pro.php:20
607
  #@ backwpup
608
  msgid "Email address to which Backups are sent."
609
  msgstr "E-Mail Adresse, an die die Backups gesendet werden sollen."
610
 
611
+ #: inc/class-destination-email.php:66
612
+ #: inc/class-destination-email.php:68
613
  #: inc/features/class-destination-email-pro.php:24
614
  #: inc/features/class-destination-email-pro.php:26
615
  #@ backwpup
616
  msgid "Send test email"
617
  msgstr "Sende eine Test E-Mail"
618
 
619
+ #: inc/class-destination-email.php:73
620
  #@ backwpup
621
  msgid "Send email settings"
622
  msgstr "Absende-Einstellungen für E-Mails"
623
 
624
+ #: inc/class-destination-email.php:76
625
  #@ backwpup
626
  msgid "Maximum file size"
627
  msgstr "Maximale Dateigröße"
628
 
629
+ #: inc/class-destination-email.php:77
630
  #: inc/features/class-destination-email-pro.php:35
631
  #@ backwpup
632
  msgid "MB"
633
  msgstr "MB"
634
 
635
+ #: inc/class-destination-email.php:82
636
+ #: inc/class-destination-email.php:86
637
  #: inc/features/class-destination-email-pro.php:44
638
  #@ backwpup
639
  msgid "Sender email address"
640
  msgstr "Absender der E-Mails"
641
 
642
+ #: inc/class-destination-email.php:98
643
  #@ backwpup
644
  msgid "Send email method"
645
  msgstr "E-Mail-Versandmethode"
646
 
647
+ #: inc/class-destination-email.php:102
648
  #@ backwpup
649
  msgid "Use Blog settings"
650
  msgstr "Verwende Blogeinstellungen"
651
 
652
+ #: inc/class-destination-email.php:103
653
  #@ backwpup
654
  msgid "PHP: mail()"
655
  msgstr "PHP: mail()"
656
 
657
+ #: inc/class-destination-email.php:104
658
  #@ backwpup
659
  msgid "Sendmail"
660
  msgstr "Sendmail"
661
 
662
+ #: inc/class-destination-email.php:105
663
  #@ backwpup
664
  msgid "SMTP"
665
  msgstr "SMTP"
666
 
667
+ #: inc/class-destination-email.php:108
668
  #@ backwpup
669
  msgid "- Use Blog settings: gets the settings form blog. -PHP mail(): needs more PHP memory"
670
  msgstr "- Verwende Webseiten Einstelllung: zieht die Einstellungen der Webseite. - PHP mail(): verbraucht viel PHP Memory"
671
 
672
+ #: inc/class-destination-email.php:113
673
  #@ backwpup
674
  msgid "Sendmail path"
675
  msgstr "Sendmail Pfad"
676
 
677
+ #: inc/class-destination-email.php:122
678
  #@ backwpup
679
  msgid "SMTP host name"
680
  msgstr "SMTP Hostname"
681
 
682
+ #: inc/class-destination-email.php:134
683
  #@ backwpup
684
  msgid "SMTP secure connection"
685
  msgstr "SMTP Sichere Verbindung"
686
 
687
+ #: inc/class-destination-email.php:138
688
+ #: inc/class-destination-s3.php:205
689
  #: inc/class-jobtype-dbdump.php:67
690
  #: inc/class-jobtype-dbdump.php:110
691
  #: inc/class-jobtype-wpexp.php:69
692
  #: inc/class-jobtype-wpplugin.php:56
693
+ #: inc/class-page-backwpup.php:217
694
+ #: inc/class-page-backwpup.php:280
695
  #: inc/features/class-jobtype-dbdump-pro.php:161
696
  #: inc/features/class-jobtype-dbdump-pro.php:219
697
  #@ backwpup
698
  msgid "none"
699
  msgstr "nichts"
700
 
701
+ #: inc/class-destination-email.php:139
702
  #@ backwpup
703
  msgid "SSL"
704
  msgstr "SSL"
705
 
706
+ #: inc/class-destination-email.php:140
707
  #@ backwpup
708
  msgid "TLS"
709
  msgstr "TLS"
710
 
711
+ #: inc/class-destination-email.php:146
712
  #@ backwpup
713
  msgid "SMTP username"
714
  msgstr "SMTP Benutzername"
715
 
716
+ #: inc/class-destination-email.php:154
717
  #@ backwpup
718
  msgid "SMTP password"
719
  msgstr "SMTP Passwort"
720
 
721
+ #: inc/class-destination-email.php:235
722
  #@ backwpup
723
  msgid "Backup archive too big to be sent by email!"
724
  msgstr "Das Datensicherungsarchiv ist zu groß zum Senden via E-Mail!"
725
 
726
+ #: inc/class-destination-email.php:316
727
  #, php-format
728
  #@ backwpup
729
  msgid "BackWPup archive from %1$s: %2$s"
730
  msgstr "BackWPup-Archiv vom %1$s: %2$s"
731
 
732
+ #: inc/class-destination-email.php:319
733
  #, php-format
734
  #@ backwpup
735
  msgid "Backup archive: %s"
736
  msgstr "Datensicherungsarchiv: %s"
737
 
738
+ #: inc/class-destination-email.php:339
739
+ #: inc/class-destination-email.php:456
740
  #@ backwpup
741
  msgid "Email sent."
742
  msgstr "E-Mail gesendet."
743
 
744
+ #: inc/class-destination-email.php:438
745
  #@ backwpup
746
  msgid "BackWPup archive sending TEST Message"
747
  msgstr "BackWPup Archiv TEST Nachricht senden"
748
 
749
+ #: inc/class-destination-email.php:441
750
  #@ backwpup
751
  msgid "If this message reaches you sending of backup archives per email should work."
752
  msgstr "Falls dich diese Nachricht erreicht, funktioniert das Senden der Sicherungsarchive per E-Mail."
800
 
801
  #: inc/class-destination-msazure.php:96
802
  #: inc/class-destination-rsc.php:105
803
+ #: inc/class-destination-s3.php:171
804
  #@ backwpup
805
  msgid "File deletion"
806
  msgstr "Datei Löschung"
920
  msgstr "Chicago (ORD)"
921
 
922
  #: inc/class-destination-rsc.php:95
923
+ #: inc/class-destination-s3.php:161
924
  #@ backwpup
925
  msgid "S3 Backup settings"
926
  msgstr "S3 Backup Einstellungen"
927
 
928
  #: inc/class-destination-rsc.php:99
929
+ #: inc/class-destination-s3.php:165
930
  #@ backwpup
931
  msgid "Folder in bucket"
932
  msgstr "Ordner im Bucket"
1001
  msgstr "Keine Container gefunden!"
1002
 
1003
  #: inc/class-destination-s3.php:26
1004
+ #: inc/class-destination-s3.php:89
1005
  #@ backwpup
1006
  msgid "S3 Service"
1007
  msgstr "S3 Service"
1011
  msgid "Backup to a S3 Service"
1012
  msgstr "Backup zu einem S3 Service"
1013
 
1014
+ #: inc/class-destination-s3.php:93
1015
  #@ backwpup
1016
  msgid "Select a S3 service"
1017
  msgstr "Wähle einen S3 Service"
1018
 
1019
+ #: inc/class-destination-s3.php:95
1020
  #: inc/features/class-destination-s3-pro.php:23
1021
  #@ backwpup
1022
  msgid "Amazon S3 Region"
1023
  msgstr "Amazon S3 Region"
1024
 
1025
+ #: inc/class-destination-s3.php:96
1026
  #: inc/features/class-destination-s3-pro.php:24
1027
  #@ backwpup
1028
  msgid "Amazon S3: US Standard"
1029
  msgstr "Amazon S3: US Standard"
1030
 
1031
+ #: inc/class-destination-s3.php:97
1032
  #: inc/features/class-destination-s3-pro.php:25
1033
  #@ backwpup
1034
  msgid "Amazon S3: US West (Northern California)"
1035
  msgstr "Amazon S3: US West (Northern California)"
1036
 
1037
+ #: inc/class-destination-s3.php:98
1038
  #: inc/features/class-destination-s3-pro.php:26
1039
  #@ backwpup
1040
  msgid "Amazon S3: US West (Oregon)"
1041
  msgstr "Amazon S3: US West (Oregon)"
1042
 
1043
+ #: inc/class-destination-s3.php:99
1044
  #: inc/features/class-destination-s3-pro.php:27
1045
  #@ backwpup
1046
  msgid "Amazon S3: EU (Ireland)"
1047
  msgstr "Amazon S3: EU (Ireland)"
1048
 
1049
+ #: inc/class-destination-s3.php:100
1050
  #: inc/features/class-destination-s3-pro.php:28
1051
  #@ backwpup
1052
  msgid "Amazon S3: Asia Pacific (Tokyo)"
1053
  msgstr "Amazon S3: Asia Pacific (Tokyo)"
1054
 
1055
+ #: inc/class-destination-s3.php:101
1056
  #: inc/features/class-destination-s3-pro.php:29
1057
  #@ backwpup
1058
  msgid "Amazon S3: Asia Pacific (Singapore)"
1059
  msgstr "Amazon S3: Asia Pacific (Singapore)"
1060
 
1061
+ #: inc/class-destination-s3.php:102
1062
  #: inc/features/class-destination-s3-pro.php:30
1063
  #@ backwpup
1064
  msgid "Amazon S3: Asia Pacific (Sydney)"
1065
  msgstr "Amazon S3: Asia Pacific (Sydney)"
1066
 
1067
+ #: inc/class-destination-s3.php:103
1068
  #: inc/features/class-destination-s3-pro.php:31
1069
  #@ backwpup
1070
  msgid "Amazon S3: South America (Sao Paulo)"
1071
  msgstr "Amazon S3: South America (Sao Paulo)"
1072
 
1073
+ #: inc/class-destination-s3.php:104
1074
  #: inc/features/class-destination-s3-pro.php:32
1075
  #@ backwpup
 
 
 
 
 
 
1076
  msgid "Google Storage (Interoperable Access)"
1077
  msgstr "Google Storage (Interoperable Access)"
1078
 
1079
+ #: inc/class-destination-s3.php:105
1080
+ #: inc/features/class-destination-s3-pro.php:33
1081
  #@ backwpup
1082
  msgid "Hosteurope Cloud Storage"
1083
  msgstr "Hosteurope Cloud Storage"
1084
 
1085
+ #: inc/class-destination-s3.php:106
1086
+ #: inc/features/class-destination-s3-pro.php:34
1087
  #@ backwpup
1088
  msgid "Dream Host Cloud Storage"
1089
  msgstr "Dream Host Cloud Storage"
1090
 
1091
+ #: inc/class-destination-s3.php:111
1092
  #@ backwpup
1093
  msgid "Or a S3 Server url"
1094
  msgstr "oder eine S3 Server URL"
1095
 
1096
+ #: inc/class-destination-s3.php:118
1097
  #@ backwpup
1098
  msgid "S3 Access Keys"
1099
  msgstr "S3 Access Keys"
1100
 
1101
+ #: inc/class-destination-s3.php:122
1102
  #@ backwpup
1103
  msgid "Access Key"
1104
  msgstr "Access Key"
1105
 
1106
+ #: inc/class-destination-s3.php:129
1107
  #@ backwpup
1108
  msgid "Secret Key"
1109
  msgstr "Secret Key"
1110
 
1111
+ #: inc/class-destination-s3.php:137
1112
  #@ backwpup
1113
  msgid "S3 Bucket"
1114
  msgstr "S3 Bucket"
1115
 
1116
+ #: inc/class-destination-s3.php:141
1117
  #@ backwpup
1118
  msgid "Bucket selection"
1119
  msgstr "Bucket Auswahl"
1120
 
1121
+ #: inc/class-destination-s3.php:154
1122
  #@ backwpup
1123
  msgid "Create a new Bucket"
1124
  msgstr "Neues Bucket erstellen"
1125
 
1126
+ #: inc/class-destination-s3.php:198
1127
  #@ backwpup
1128
  msgid "Amazon specific settings"
1129
  msgstr "Amazon spezifische Einstellungen"
1130
 
1131
+ #: inc/class-destination-s3.php:202
1132
+ #: inc/class-destination-s3.php:204
1133
  #@ backwpup
1134
  msgid "Amazon: Storage Class"
1135
  msgstr "Amazon: Storage Class"
1136
 
1137
+ #: inc/class-destination-s3.php:206
1138
  #@ backwpup
1139
  msgid "Reduced Redundancy"
1140
  msgstr "Reduzierte Redundanz"
1141
 
1142
+ #: inc/class-destination-s3.php:211
1143
  #@ backwpup
1144
  msgid "Server side encryption"
1145
  msgstr "Serverseitige Enkryption"
1146
 
1147
+ #: inc/class-destination-s3.php:215
1148
  #@ backwpup
1149
  msgid "Save files encrypted (AES256) on server."
1150
  msgstr "Speicher Dateien Server Side Encrypted (AES256)"
1151
 
1152
+ #: inc/class-destination-s3.php:271
1153
+ #: inc/features/class-destination-s3-pro.php:126
1154
  #, php-format
1155
  #@ backwpup
1156
  msgid "Bucket %1$s in %2$s created."
1157
  msgstr "Bucket %1$s in %2$s erstellt."
1158
 
1159
+ #: inc/class-destination-s3.php:273
1160
  #, php-format
1161
  #@ backwpup
1162
  msgid "Bucket %s could not created."
1163
  msgstr "Bucket %s konnte nicht erstellt werden"
1164
 
1165
+ #: inc/class-destination-s3.php:275
1166
+ #: inc/features/class-destination-s3-pro.php:130
1167
  #, php-format
1168
  #@ backwpup
1169
  msgid " %s is not a valid bucket name."
1170
  msgstr "%s ist kein gültiger Bucket Name"
1171
 
1172
+ #: inc/class-destination-s3.php:317
1173
+ #: inc/class-destination-s3.php:425
1174
+ #: inc/class-destination-s3.php:456
1175
+ #: inc/class-destination-s3.php:477
1176
+ #: inc/class-destination-s3.php:536
1177
+ #: inc/features/class-destination-s3-pro.php:280
1178
  #, php-format
1179
  #@ backwpup
1180
  msgid "S3 Service API: %s"
1181
  msgstr "S3 Service API: %s"
1182
 
1183
+ #: inc/class-destination-s3.php:381
1184
  #, php-format
1185
  #@ backwpup
1186
  msgid "%d. Trying to send backup file to S3 Service &hellip;"
1187
  msgstr "%d. Versuche, ein Backup zum S3-Service zu senden &hellip;"
1188
 
1189
+ #: inc/class-destination-s3.php:396
1190
+ #: inc/features/class-destination-s3-pro.php:168
 
 
 
 
 
 
1191
  #, php-format
1192
  #@ backwpup
1193
  msgid "S3 Bucket \"%s\" does not exist!"
1194
  msgstr "Amazon S3 Bucket \"%s\" existiert nicht!"
1195
 
1196
+ #: inc/class-destination-s3.php:402
1197
  #@ backwpup
1198
  msgid "Upload to S3 Service started &hellip;"
1199
  msgstr "Upload zum S3 Service jetzt gestartet &hellip;"
1200
 
1201
+ #: inc/class-destination-s3.php:468
1202
  #, php-format
1203
  #@ backwpup
1204
  msgid "Backup transferred to %s."
1205
  msgstr "Datensicherung übertragen zu %s"
1206
 
1207
+ #: inc/class-destination-s3.php:473
1208
  #, php-format
1209
  #@ backwpup
1210
  msgid "Can not transfer backup to S3! (%1$d) %2$s"
1211
  msgstr "Datensicherung kann nicht zu Amazon S3 übertragen werden! (%1$d) %2$s"
1212
 
1213
+ #: inc/class-destination-s3.php:526
1214
  #, php-format
1215
  #@ backwpup
1216
  msgid "Can not delete backup on %s."
1217
  msgstr "Kann das Backup auf %s nicht löschen"
1218
 
1219
+ #: inc/class-destination-s3.php:530
1220
  #, php-format
1221
  #@ backwpup
1222
  msgid "One file deleted on S3 Bucket."
1224
  msgstr[0] "Eine Datei im S3-Bucket gelöscht"
1225
  msgstr[1] "%d Dateien im S3-Bucket gelöscht"
1226
 
1227
+ #: inc/class-destination-s3.php:633
1228
  #@ backwpup
1229
  msgid "Missing access key!"
1230
  msgstr "Der Zugangsschlüssel (Access Key) fehlt!"
1231
 
1232
+ #: inc/class-destination-s3.php:635
1233
  #@ backwpup
1234
  msgid "Missing secret access key!"
1235
  msgstr "Der geheime Zugangsschlüssel (Secret Access Key) fehlt!"
1236
 
1237
+ #: inc/class-destination-s3.php:639
1238
  #@ backwpup
1239
  msgid "No bucket found!"
1240
  msgstr "Kein Bucket gefunden!"
1596
  msgid "RECOVERABLE ERROR:"
1597
  msgstr "WIEDERHERSTELLUNGS FEHLER:"
1598
 
1599
+ #: inc/class-job.php:1127
1600
  #, php-format
1601
  #@ backwpup
1602
  msgid "One old log deleted"
1604
  msgstr[0] "Eine alte Log-Datei gelöscht"
1605
  msgstr[1] "%d alte Log-Dateien gelöscht"
1606
 
1607
+ #: inc/class-job.php:1132
1608
+ #: inc/class-page-jobs.php:566
1609
  #, php-format
1610
  #@ backwpup
1611
  msgid "Job done in %s seconds."
1612
  msgstr "Auftrag erledigt in %s Sekunden."
1613
 
1614
+ #: inc/class-job.php:1197
1615
  #@ backwpup
1616
  msgid "SUCCESSFUL"
1617
  msgstr "ERFOLGREICH"
1618
 
1619
+ #: inc/class-job.php:1200
1620
  #@ backwpup
1621
  msgid "WARNING"
1622
  msgstr "WARNUNG"
1623
 
1624
+ #: inc/class-job.php:1243
1625
  #@ backwpup
1626
  msgid "Set blog into maintenance mode"
1627
  msgstr "Webseite / Blog in den Wartungsmodus versetzen"
1628
 
1629
+ #: inc/class-job.php:1256
1630
  #@ backwpup
1631
  msgid "Cannot set blog into maintenance mode! .maintenance is not writable!"
1632
  msgstr "Die Webseite kann nicht in den Wartungsmodus gesetzt werden! Das Root-Verzeichnis ist nicht beschreibbar!"
1633
 
1634
+ #: inc/class-job.php:1261
1635
  #@ backwpup
1636
  msgid "Set blog to normal mode"
1637
  msgstr "Setze Webseite / Blog zurück in den Normalmodus"
1638
 
1639
+ #: inc/class-job.php:1291
1640
  #, php-format
1641
  #@ backwpup
1642
  msgid "Memory increased from %1$s to %2$s"
1643
  msgstr "Speicher(limit) erhöht von %1$s auf %2$s"
1644
 
1645
+ #: inc/class-job.php:1293
1646
  #, php-format
1647
  #@ backwpup
1648
  msgid "Can not increase memory limit. The current value is %1$s"
1649
  msgstr "Das PHP-Speicherlimit kann nicht erhöht werden, es beträgt derzeit %1$s "
1650
 
1651
+ #: inc/class-job.php:1589
1652
  #, php-format
1653
  #@ backwpup
1654
  msgid "File \"%s\" is not readable!"
1655
  msgstr "Datei \"%s\" ist nicht lesbar!"
1656
 
1657
+ #: inc/class-job.php:1591
1658
  #, php-format
1659
  #@ backwpup
1660
  msgid "Link \"%s\" not followed."
1781
  msgid "(ER_DELETED) Entry has been deleted"
1782
  msgstr "(ER_DELETED) Eintrag wurde gelöscht"
1783
 
1784
+ #: inc/class-job.php:1656
1785
  #, php-format
1786
  #@ backwpup
1787
  msgid "Archive size is %s."
1788
  msgstr "Archivgröße ist %s"
1789
 
1790
+ #: inc/class-job.php:1657
1791
  #, php-format
1792
  #@ backwpup
1793
  msgid "%1$d Files with %2$s in Archive."
1980
  msgstr "BZip2"
1981
 
1982
  #: inc/class-mysqldump.php:86
1983
+ #: inc/features/class-jobtype-dbdump-pro.php:700
1984
  #, php-format
1985
  #@ backwpup
1986
  msgid "Can not connect to MySQL Database %1$d: %2$s"
1987
  msgstr "Kann keine Verbindung zur Datenbank %1$d herstellen: %2$s"
1988
 
1989
+ #: inc/class-jobtype-dbdump.php:179
1990
  #: inc/features/class-jobtype-dbdump-pro.php:489
1991
+ #: inc/features/class-jobtype-dbdump-pro.php:707
1992
  #, php-format
1993
  #@ backwpup
1994
  msgid "Connected to database %1$s on %2$s"
1995
  msgstr "Mit Datenbank %1$s auf %2$s verbunden"
1996
 
1997
+ #: inc/class-mysqldump.php:127
1998
+ #: inc/class-mysqldump.php:137
1999
+ #: inc/class-mysqldump.php:214
2000
+ #: inc/class-mysqldump.php:225
2001
+ #: inc/class-mysqldump.php:237
2002
+ #: inc/class-mysqldump.php:248
2003
+ #: inc/class-mysqldump.php:286
2004
+ #: inc/class-mysqldump.php:307
2005
+ #: inc/class-mysqldump.php:321
2006
+ #: inc/features/class-jobtype-dbdump-pro.php:713
2007
+ #: inc/features/class-jobtype-dbdump-pro.php:727
2008
+ #: inc/features/class-jobtype-dbdump-pro.php:776
2009
+ #: inc/features/class-jobtype-dbdump-pro.php:793
2010
+ #: inc/features/class-jobtype-dbdump-pro.php:834
2011
  #, php-format
2012
  #@ backwpup
2013
  msgid "Database error %1$s for query %2$s"
2014
  msgstr "Datenbankfehler %1$s für die Abfrage (Query) %2$s"
2015
 
2016
+ #: inc/class-jobtype-dbdump.php:191
2017
  #: inc/features/class-jobtype-dbdump-pro.php:502
2018
  #@ backwpup
2019
  msgid "No tables to dump."
2020
  msgstr "Es gibt keine Tabellen zu sichern"
2021
 
2022
+ #: inc/class-jobtype-dbdump.php:202
2023
  #: inc/features/class-jobtype-dbdump-pro.php:516
2024
  #, php-format
2025
  #@ backwpup
2026
  msgid "Dump database table \"%s\""
2027
  msgstr "Sichere Datenbanktabelle \"%s\""
2028
 
2029
+ #: inc/class-jobtype-dbdump.php:227
2030
  #: inc/features/class-jobtype-dbdump-pro.php:541
2031
+ #: inc/features/class-jobtype-dbdump-pro.php:659
2032
  #@ backwpup
2033
  msgid "Database dump done!"
2034
  msgstr "Datenbank-Backup fertig!"
2189
  msgid "%1$d folders to back up."
2190
  msgstr "%1$d Ordner zu sichern"
2191
 
2192
+ #: inc/class-jobtype-file.php:473
2193
  #, php-format
2194
  #@ backwpup
2195
  msgid "Folder \"%s\" is not readable!"
2311
  msgstr "Größe"
2312
 
2313
  #: inc/class-page-backups.php:233
2314
+ #: inc/class-page-backwpup.php:175
2315
+ #: inc/class-page-backwpup.php:236
2316
  #@ backwpup
2317
  msgid "Time"
2318
  msgstr "Zeit"
2372
  msgid "Start wizard"
2373
  msgstr "Assistenten starten"
2374
 
2375
+ #: inc/class-page-backwpup.php:134
2376
  #@ backwpup
2377
  msgid "Test the installation"
2378
  msgstr "Die Installation testen"
2379
 
2380
+ #: inc/class-page-backwpup.php:135
2381
+ #: inc/class-page-backwpup.php:138
2382
  #@ backwpup
2383
  msgid "Create a Job"
2384
  msgstr "Auftrag erstellen"
2385
 
2386
+ #: inc/class-page-backwpup.php:140
2387
  #@ backwpup
2388
  msgid "Run the created job"
2389
  msgstr "Erstellten Auftrag starten"
2390
 
2391
+ #: inc/class-page-backwpup.php:141
2392
  #@ backwpup
2393
  msgid "Check the job log"
2394
  msgstr "Logs des Auftrages prüfen"
2395
 
2396
+ #: inc/class-page-backwpup.php:234
2397
  #@ backwpup
2398
  msgid "Next scheduled jobs"
2399
  msgstr "Nächste geplante Aufträge"
2400
 
2401
+ #: inc/class-page-backwpup.php:175
2402
+ #: inc/class-page-backwpup.php:237
2403
  #: inc/class-page-logs.php:114
2404
  #@ backwpup
2405
  msgid "Job"
2406
  msgstr "Auftrag"
2407
 
2408
+ #: inc/class-page-backwpup.php:260
2409
  #, php-format
2410
  #@ backwpup
2411
  msgid "working since %d seconds"
2412
  msgstr "in Arbeit seit %d Sek."
2413
 
2414
+ #: inc/class-page-backwpup.php:262
2415
  #: inc/class-page-jobs.php:436
2416
  #@ backwpup
2417
  msgid "Abort"
2418
  msgstr "Abbrechen"
2419
 
2420
+ #: inc/class-page-backwpup.php:276
2421
  #@ backwpup
2422
  msgid "Edit Job"
2423
  msgstr "Auftrag bearbeiten"
2424
 
2425
+ #: inc/class-page-backwpup.php:174
2426
  #@ backwpup
2427
  msgid "Last logs"
2428
  msgstr "Letzte Logs"
2429
 
2430
+ #: inc/class-page-backwpup.php:175
2431
  #@ backwpup
2432
  msgid "Result"
2433
  msgstr "Ergebnis"
2434
 
2435
+ #: inc/class-page-backwpup.php:205
2436
  #, php-format
2437
  #@ backwpup
2438
  msgid "%d ERROR"
2440
  msgstr[0] "%d FEHLER"
2441
  msgstr[1] "%d FEHLER"
2442
 
2443
+ #: inc/class-page-backwpup.php:207
2444
  #, php-format
2445
  #@ backwpup
2446
  msgid "%d WARNING"
2448
  msgstr[0] "%d WARNUNG"
2449
  msgstr[1] "%d WARNUNGEN"
2450
 
2451
+ #: inc/class-page-backwpup.php:209
2452
  #: inc/class-page-logs.php:197
2453
  #@ backwpup
2454
  msgid "O.K."
2465
  msgid "Not allowed!"
2466
  msgstr "Nicht erlaubt!"
2467
 
2468
+ #: inc/class-page-editjob.php:177
2469
  #, php-format
2470
  #@ backwpup
2471
  msgid "Changes for job <i>%s</i> saved."
2472
  msgstr "Änderungen für den Auftrag <i>%s</i> gesichert."
2473
 
2474
+ #: inc/class-page-editjob.php:319
2475
  #, php-format
2476
  #@ backwpup
2477
  msgid "ATTENTION: Job runs every %d minutes!"
2478
  msgstr "ACHTUNG: Auftrag läuft alle %d Minuten!"
2479
 
2480
+ #: inc/class-page-editjob.php:325
2481
  #, php-format
2482
  #@ backwpup
2483
  msgid "ATTENTION: Job runs every %d hours!"
2484
  msgstr "ACHTUNG: Auftrag läuft alle %d Stunden!"
2485
 
2486
+ #: inc/class-page-editjob.php:329
2487
  #@ backwpup
2488
  msgid "ATTENTION: Can't calculate cron!"
2489
  msgstr "ACHTUNG: Kann cron nicht berechnen!"
2490
 
2491
+ #: inc/class-page-editjob.php:332
2492
  #@ backwpup
2493
  msgid "Next runtime:"
2494
  msgstr "Nächster Durchlauf:"
2495
 
2496
+ #: inc/class-page-editjob.php:370
2497
  #: inc/class-page-settings.php:100
2498
  #@ backwpup
2499
  msgid "General"
2500
  msgstr "Allgemein"
2501
 
2502
+ #: inc/class-page-editjob.php:370
2503
  #@ backwpup
2504
  msgid "Schedule"
2505
  msgstr "Planen"
2506
 
2507
+ #: inc/class-page-editjob.php:385
2508
  #, php-format
2509
  #@ backwpup
2510
  msgid "To: %s"
2511
  msgstr "Zu: %s"
2512
 
2513
+ #: inc/class-page-editjob.php:391
2514
  #, php-format
2515
  #@ backwpup
2516
  msgid "%s Job:"
2517
  msgstr "%s Auftrag: "
2518
 
2519
+ #: inc/class-page-editjob.php:437
2520
  #: inc/features/class-wizard-job.php:228
2521
  #@ backwpup
2522
  msgid "Job tasks"
2523
  msgstr "Auftragsdetails"
2524
 
2525
+ #: inc/class-page-editjob.php:453
2526
  #@ backwpup
2527
  msgid "Backup file creation settings"
2528
  msgstr "Einstellungen für das Erstellen der Backup Datei"
2529
 
2530
+ #: inc/class-page-editjob.php:458
2531
+ #: inc/class-page-editjob.php:461
2532
  #: inc/features/class-wizard-job.php:350
2533
  #: inc/features/class-wizard-job.php:353
2534
  #@ backwpup
2540
  msgid "Sync file by file to destination"
2541
  msgstr "Synchronisiere Datei für Datei zum Zielverzeichnis"
2542
 
2543
+ #: inc/class-page-editjob.php:470
2544
  #: inc/features/class-wizard-job.php:361
2545
  #@ backwpup
2546
  msgid "Create a backup archive"
2547
  msgstr "Backup erstellen"
2548
 
2549
+ #: inc/class-page-editjob.php:516
2550
+ #: inc/class-page-editjob.php:519
2551
  #@ backwpup
2552
  msgid "Archive Format"
2553
  msgstr "Archiv Format"
2554
 
2555
+ #: inc/class-page-editjob.php:522
2556
+ #: inc/class-page-editjob.php:524
2557
  #: inc/features/class-wizard-job.php:371
2558
  #: inc/features/class-wizard-job.php:373
2559
  #@ backwpup
2560
  msgid "Zip"
2561
  msgstr "Zip"
2562
 
2563
+ #: inc/class-page-editjob.php:522
2564
  #@ backwpup
2565
  msgid "PHP Zip functions will be used if available (needs less memory). Otherwise the PCLZip Class will be used."
2566
  msgstr "PHP-Zip-Funktionen werden verwendet, sofern verfügbar (schneller). Ansonsten wird die Klasse PCLZip verwendet."
2567
 
2568
+ #: inc/class-page-editjob.php:524
2569
+ #: inc/class-page-editjob.php:529
2570
+ #: inc/class-page-editjob.php:533
2571
  #: inc/features/class-wizard-job.php:373
2572
  #: inc/features/class-wizard-job.php:378
2573
  #: inc/features/class-wizard-job.php:382
2575
  msgid "Disabled because missing PHP function."
2576
  msgstr "Aufgrund fehlender PHP Funktion deaktiviert."
2577
 
2578
+ #: inc/class-page-editjob.php:525
2579
  #: inc/features/class-wizard-job.php:374
2580
  #@ backwpup
2581
  msgid "Tar"
2582
  msgstr "Tar"
2583
 
2584
+ #: inc/class-page-editjob.php:525
2585
  #@ backwpup
2586
  msgid "Tar (fast and less memory)"
2587
  msgstr "Tar (schnell und speicherschonend)"
2588
 
2589
+ #: inc/class-page-editjob.php:527
2590
+ #: inc/class-page-editjob.php:529
2591
  #: inc/features/class-wizard-job.php:376
2592
  #: inc/features/class-wizard-job.php:378
2593
  #@ backwpup
2594
  msgid "Tar GZip"
2595
  msgstr "Tar GZip"
2596
 
2597
+ #: inc/class-page-editjob.php:527
2598
  #@ backwpup
2599
  msgid "A tarballed and GZipped archive (fast and less memory)"
2600
  msgstr "Ein .tar und .gz Archiv (schnell und schlank)"
2601
 
2602
+ #: inc/class-page-editjob.php:531
2603
+ #: inc/class-page-editjob.php:533
2604
  #: inc/features/class-wizard-job.php:380
2605
  #: inc/features/class-wizard-job.php:382
2606
  #@ backwpup
2607
  msgid "Tar BZip2"
2608
  msgstr "Tar BZip2"
2609
 
2610
+ #: inc/class-page-editjob.php:531
2611
  #@ backwpup
2612
  msgid "A tarballed and BZipped archive (fast and less memory)"
2613
  msgstr "Ein .tar und .bz Archiv (schnell und schlank)"
2614
 
2615
+ #: inc/class-page-editjob.php:539
2616
  #: inc/features/class-wizard-job.php:396
2617
  #@ backwpup
2618
  msgid "Where to store the files"
2619
  msgstr "Wo die Dateien abgelegt werden"
2620
 
2621
+ #: inc/class-page-editjob.php:543
2622
+ #: inc/class-page-editjob.php:546
2623
  #: inc/class-page-jobs.php:71
2624
  #: inc/features/class-wizard-job.php:50
2625
  #: inc/features/class-wizard-job.php:399
2627
  msgid "Destinations"
2628
  msgstr "Zielordner"
2629
 
2630
+ #: inc/class-page-editjob.php:562
2631
  #@ backwpup
2632
  msgid "Send log to email address"
2633
  msgstr "Sende Log-Datei zur E-Mail Adresse"
2634
 
2635
+ #: inc/class-page-editjob.php:570
2636
  #@ backwpup
2637
  msgid "Leave empty and don't get a log sent."
2638
  msgstr "Leerlassen um die Logs nicht zu senden"
2639
 
2640
+ #: inc/class-page-editjob.php:582
2641
  #@ backwpup
2642
  msgid "When to send"
2643
  msgstr "Sendezeitpunkt"
2644
 
2645
+ #: inc/class-page-editjob.php:587
2646
  #@ backwpup
2647
  msgid "Send mail with log only when errors occur during job execution."
2648
  msgstr "Sende eine E-Mail mit Protokoll nur, wenn während des Auftrags ein Fehler aufgetreten ist."
2649
 
2650
+ #: inc/class-page-editjob.php:598
2651
  #@ backwpup
2652
  msgid "Schedule start setting"
2653
  msgstr "Planung Start Einstellungen"
2654
 
2655
+ #: inc/class-page-editjob.php:602
2656
+ #: inc/class-page-editjob.php:605
2657
  #@ backwpup
2658
  msgid "Start job"
2659
  msgstr "Auftrag starten"
2660
 
2661
+ #: inc/class-page-editjob.php:609
2662
  #@ backwpup
2663
  msgid "manually only"
2664
  msgstr "nur manuell"
2665
 
2666
+ #: inc/class-page-editjob.php:613
2667
  #@ backwpup
2668
  msgid "with WordPress cron"
2669
  msgstr "mit WordPress Cron"
2670
 
2671
+ #: inc/class-page-editjob.php:620
2672
  #@ backwpup
2673
  msgid "with a link"
2674
  msgstr "mit einem Link"
2675
 
2676
+ #: inc/class-page-editjob.php:638
2677
  #@ backwpup
2678
  msgid "Schedule execution time"
2679
  msgstr "Plane Ausführungszeit"
2680
 
2681
+ #: inc/class-page-editjob.php:642
2682
+ #: inc/class-page-editjob.php:645
2683
  #@ backwpup
2684
  msgid "Scheduler type"
2685
  msgstr "Planungstyp"
2686
 
2687
+ #: inc/class-page-editjob.php:650
2688
  #@ backwpup
2689
  msgid "basic"
2690
  msgstr "einfach"
2691
 
2692
+ #: inc/class-page-editjob.php:654
2693
  #@ backwpup
2694
  msgid "advanced"
2695
  msgstr "erweitert"
2696
 
2697
+ #: inc/class-page-editjob.php:683
2698
+ #: inc/class-page-editjob.php:751
2699
  #: inc/features/class-wizard-job.php:275
2700
  #@ backwpup
2701
  msgid "Scheduler"
2702
  msgstr "Planer"
2703
 
2704
+ #: inc/class-page-editjob.php:688
2705
  #: inc/class-page-jobs.php:70
2706
  #: inc/class-page-logs.php:115
2707
  #: inc/features/class-wizard-job.php:280
2709
  msgid "Type"
2710
  msgstr "Typ"
2711
 
2712
+ #: inc/class-page-editjob.php:693
2713
  #: inc/features/class-wizard-job.php:285
2714
  #@ backwpup
2715
  msgid "Hour"
2716
  msgstr "Stunde"
2717
 
2718
+ #: inc/class-page-editjob.php:696
2719
  #: inc/features/class-wizard-job.php:288
2720
  #@ backwpup
2721
  msgid "Minute"
2722
  msgstr "Minute"
2723
 
2724
+ #: inc/class-page-editjob.php:700
2725
  #: inc/features/class-wizard-job.php:292
2726
  #@ backwpup
2727
  msgid "monthly"
2728
  msgstr "monatlich"
2729
 
2730
+ #: inc/class-page-editjob.php:702
2731
  #: inc/features/class-wizard-job.php:294
2732
  #@ backwpup
2733
  msgid "on"
2734
  msgstr "am"
2735
 
2736
+ #: inc/class-page-editjob.php:712
2737
  #: inc/features/class-wizard-job.php:304
2738
  #@ backwpup
2739
  msgid "weekly"
2740
  msgstr "wöchentlich"
2741
 
2742
+ #: inc/class-page-editjob.php:714
2743
+ #: inc/class-page-editjob.php:821
2744
  #: inc/features/class-wizard-job.php:306
2745
  #@ backwpup
2746
  msgid "Sunday"
2747
  msgstr "Sonntag"
2748
 
2749
+ #: inc/class-page-editjob.php:715
2750
+ #: inc/class-page-editjob.php:822
2751
  #: inc/features/class-wizard-job.php:307
2752
  #@ backwpup
2753
  msgid "Monday"
2754
  msgstr "Montag"
2755
 
2756
+ #: inc/class-page-editjob.php:716
2757
+ #: inc/class-page-editjob.php:823
2758
  #: inc/features/class-wizard-job.php:308
2759
  #@ backwpup
2760
  msgid "Tuesday"
2761
  msgstr "Dienstag"
2762
 
2763
+ #: inc/class-page-editjob.php:717
2764
+ #: inc/class-page-editjob.php:824
2765
  #: inc/features/class-wizard-job.php:309
2766
  #@ backwpup
2767
  msgid "Wednesday"
2768
  msgstr "Mittwoch"
2769
 
2770
+ #: inc/class-page-editjob.php:718
2771
+ #: inc/class-page-editjob.php:825
2772
  #: inc/features/class-wizard-job.php:310
2773
  #@ backwpup
2774
  msgid "Thursday"
2775
  msgstr "Donnerstag"
2776
 
2777
+ #: inc/class-page-editjob.php:719
2778
+ #: inc/class-page-editjob.php:826
2779
  #: inc/features/class-wizard-job.php:311
2780
  #@ backwpup
2781
  msgid "Friday"
2782
  msgstr "Freitag"
2783
 
2784
+ #: inc/class-page-editjob.php:720
2785
+ #: inc/class-page-editjob.php:827
2786
  #: inc/features/class-wizard-job.php:312
2787
  #@ backwpup
2788
  msgid "Saturday"
2789
  msgstr "Samstag"
2790
 
2791
+ #: inc/class-page-editjob.php:730
2792
  #: inc/features/class-wizard-job.php:322
2793
  #@ backwpup
2794
  msgid "daily"
2795
  msgstr "täglich"
2796
 
2797
+ #: inc/class-page-editjob.php:740
2798
  #: inc/features/class-wizard-job.php:332
2799
  #@ backwpup
2800
  msgid "hourly"
2801
  msgstr "stündlich"
2802
 
2803
+ #: inc/class-page-editjob.php:756
2804
+ #: inc/class-page-editjob.php:769
2805
+ #: inc/class-page-editjob.php:781
2806
+ #: inc/class-page-editjob.php:795
2807
+ #: inc/class-page-editjob.php:817
2808
  #@ backwpup
2809
  msgid "Any (*)"
2810
  msgstr "Alle (*)"
2811
 
2812
+ #: inc/class-page-editjob.php:766
2813
  #@ backwpup
2814
  msgid "Hours:"
2815
  msgstr "Stunden:"
2816
 
2817
+ #: inc/class-page-editjob.php:779
2818
  #@ backwpup
2819
  msgid "Day of Month:"
2820
  msgstr "Tag des Monats:"
2821
 
2822
+ #: inc/class-page-editjob.php:793
2823
  #@ backwpup
2824
  msgid "Month:"
2825
  msgstr "Monat:"
2826
 
2827
+ #: inc/class-page-editjob.php:799
2828
  #@ backwpup
2829
  msgid "January"
2830
  msgstr "Januar"
2831
 
2832
+ #: inc/class-page-editjob.php:800
2833
  #@ backwpup
2834
  msgid "February"
2835
  msgstr "Februar"
2836
 
2837
+ #: inc/class-page-editjob.php:801
2838
  #@ backwpup
2839
  msgid "March"
2840
  msgstr "März"
2841
 
2842
+ #: inc/class-page-editjob.php:802
2843
  #@ backwpup
2844
  msgid "April"
2845
  msgstr "April"
2846
 
2847
+ #: inc/class-page-editjob.php:803
2848
  #@ backwpup
2849
  msgid "May"
2850
  msgstr "Mai"
2851
 
2852
+ #: inc/class-page-editjob.php:804
2853
  #@ backwpup
2854
  msgid "June"
2855
  msgstr "Juni"
2856
 
2857
+ #: inc/class-page-editjob.php:805
2858
  #@ backwpup
2859
  msgid "July"
2860
  msgstr "Juli"
2861
 
2862
+ #: inc/class-page-editjob.php:806
2863
  #@ backwpup
2864
  msgid "August"
2865
  msgstr "August"
2866
 
2867
+ #: inc/class-page-editjob.php:807
2868
  #@ backwpup
2869
  msgid "September"
2870
  msgstr "September"
2871
 
2872
+ #: inc/class-page-editjob.php:808
2873
  #@ backwpup
2874
  msgid "October"
2875
  msgstr "Oktober"
2876
 
2877
+ #: inc/class-page-editjob.php:809
2878
  #@ backwpup
2879
  msgid "November"
2880
  msgstr "November"
2881
 
2882
+ #: inc/class-page-editjob.php:810
2883
  #@ backwpup
2884
  msgid "December"
2885
  msgstr "Dezember"
2886
 
2887
+ #: inc/class-page-editjob.php:815
2888
  #@ backwpup
2889
  msgid "Day of Week:"
2890
  msgstr "Wochentag:"
2891
 
2892
+ #: inc/class-page-editjob.php:851
2893
  #@ backwpup
2894
  msgid "Save changes"
2895
  msgstr "Änderungen speichern"
3026
  msgid "close"
3027
  msgstr "schließen"
3028
 
3029
+ #: inc/class-page-jobs.php:565
3030
  #@ backwpup
3031
  msgid "Job end"
3032
  msgstr "Auftragsende"
3398
  msgid "Job Types"
3399
  msgstr "Auftragstypen"
3400
 
3401
+ #: inc/class-page-editjob.php:422
3402
  #@ backwpup
3403
  msgid "Name"
3404
  msgstr "Name"
3642
  msgstr "Kontoname/ Benutzername:"
3643
 
3644
  #: inc/features/class-destination-msazure-pro.php:15
3645
+ #: inc/features/class-destination-s3-pro.php:39
3646
  #@ backwpup
3647
  msgid "Access Key:"
3648
  msgstr "Zugangsschlüssel (Access Key):"
3764
  msgid "Select a S3 service:"
3765
  msgstr "Wähle einen S3 service: "
3766
 
3767
+ #: inc/features/class-destination-s3-pro.php:36
3768
  #@ backwpup
3769
  msgid "or set a S3 Server url:"
3770
  msgstr "oder setze eine S3 Server URL:"
3771
 
3772
+ #: inc/features/class-destination-s3-pro.php:42
3773
  #@ backwpup
3774
  msgid "Secret Key:"
3775
  msgstr "Secret Key:"
3776
 
3777
+ #: inc/features/class-destination-s3-pro.php:45
3778
  #@ backwpup
3779
  msgid "Bucket:"
3780
  msgstr "Bucket:"
3781
 
3782
+ #: inc/features/class-destination-s3-pro.php:55
3783
  #@ backwpup
3784
  msgid "New Bucket:"
3785
  msgstr "Neues Bucket: "
3786
 
3787
+ #: inc/features/class-destination-s3-pro.php:57
3788
  #@ backwpup
3789
  msgid "Folder in bucket:"
3790
  msgstr "Ordner im Bucket:"
3791
 
3792
+ #: inc/features/class-destination-s3-pro.php:128
3793
  #, php-format
3794
  #@ backwpup
3795
  msgid "Bucket %s could not be created."
3796
  msgstr "Bucket %s konnte nicht erstellt werden."
3797
 
3798
+ #: inc/features/class-destination-s3-pro.php:152
3799
  #, php-format
3800
  #@ backwpup
3801
  msgid "%d. Trying to sync files to S3 Service &hellip;"
3802
  msgstr "%d. Versuche, die Dateien mit dem S3-Service zu synchronisieren &hellip;"
3803
 
3804
+ #: inc/features/class-destination-s3-pro.php:165
3805
  #, php-format
3806
  #@ backwpup
3807
  msgid "Connected to S3 Bucket \"%1$s\" from \"%3$s\" in %2$s."
3808
  msgstr "Mit S3 Bucket \"%1$s\" von \"%3$s\" in %2$s verbunden."
3809
 
3810
+ #: inc/features/class-destination-s3-pro.php:175
3811
  #@ backwpup
3812
  msgid "Getting files list from S3."
3813
  msgstr "Ziehe Dateilliste von S3."
3814
 
3815
+ #: inc/features/class-destination-s3-pro.php:228
3816
  #@ backwpup
3817
  msgid "Upload changed files to S3."
3818
  msgstr "Geänderte Dateien zu S3 hochladen."
3819
 
3820
+ #: inc/features/class-destination-s3-pro.php:240
3821
  #, php-format
3822
  #@ backwpup
3823
  msgid "File %s Uploaded to S3."
3824
  msgstr "Datei %s zu S3 hochgeladen."
3825
 
3826
+ #: inc/features/class-destination-s3-pro.php:257
3827
  #, php-format
3828
  #@ backwpup
3829
  msgid "Extra file %s uploaded to S3."
3830
  msgstr "Extra Datei %s zu S3 hochgeladen."
3831
 
3832
+ #: inc/features/class-destination-s3-pro.php:266
3833
  #@ backwpup
3834
  msgid "Delete nonexistent files on S3"
3835
  msgstr "Es werden keine existierenden Dateien in S3 gelöscht."
3836
 
3837
+ #: inc/features/class-destination-s3-pro.php:273
3838
  #, php-format
3839
  #@ backwpup
3840
  msgid "File %s deleted on S3."
3936
  msgid "Dump type"
3937
  msgstr "Backup-Typ"
3938
 
3939
+ #: inc/class-jobtype-dbdump.php:224
3940
  #: inc/features/class-jobtype-dbdump-pro.php:538
3941
+ #: inc/features/class-jobtype-dbdump-pro.php:656
3942
  #, php-format
3943
  #@ backwpup
3944
  msgid "Added database dump \"%1$s\" with %2$s to backup file list"
3945
  msgstr "Datenbank-Backup erstellt \"%1$s\" mit %2$s zur Backup-Liste"
3946
 
3947
+ #: inc/features/class-jobtype-dbdump-pro.php:641
3948
  #@ backwpup
3949
  msgid "Compressing done."
3950
  msgstr "Komprimierung erledigt."
3951
 
3952
+ #: inc/features/class-jobtype-dbdump-pro.php:734
3953
  #@ backwpup
3954
  msgid "No tables for XML dump"
3955
  msgstr "Es gibt keine Tabellen für ein XML-Backup"
3956
 
3957
+ #: inc/features/class-jobtype-dbdump-pro.php:771
3958
  #, php-format
3959
  #@ backwpup
3960
  msgid "Dump database create view \"%s\""
3961
  msgstr "Datenbank-Backup erstellt \"%s\""
3962
 
3963
+ #: inc/features/class-jobtype-dbdump-pro.php:828
3964
  #, php-format
3965
  #@ backwpup
3966
  msgid "Dump table \"%s\" data"
3967
  msgstr "Backup der Tabellen \"%s\""
3968
 
3969
+ #: inc/features/class-jobtype-dbdump-pro.php:897
3970
  #, php-format
3971
  #@ backwpup
3972
  msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
3973
  msgstr "XML-Backup der Datenbank \"%1$s\" mit %2$s zur Backup-Liste"
3974
 
3975
+ #: inc/features/class-jobtype-dbdump-pro.php:900
3976
  #@ backwpup
3977
  msgid "Database XML dump done!"
3978
  msgstr "XML-Backup der Datenbank erstellt."
4430
  msgid "No destination correctly defined for backup! Please correct job settings."
4431
  msgstr "Es wurde kein korrektes Backupziel definiert! Bitte überprüfe die Auftragseinstellungen."
4432
 
4433
+ #: inc/class-job.php:1252
4434
  #@ backwpup
4435
  msgid "WordPress Maintenance mode not activated on Manual run. Because it disappears displaying of working progress."
4436
  msgstr "Der WordPress-Wartungsmodus wurde nicht aktiviert, da der Auftrag manuell gestartet wurde. Dies würde die Fortschrittsanzeige behindern."
4531
  msgid "Plugin list file name"
4532
  msgstr "Plugin listen Datei Name"
4533
 
4534
+ #: inc/class-page-backwpup.php:137
4535
  #@ backwpup
4536
  msgid "Check the installation"
4537
  msgstr "Überprüfe die Installation"
4615
  msgid "%d. Try to Sync files to Folder &hellip;"
4616
  msgstr "%d. Versuch Dateien in eine Verzeichnis zu Synchronisierungen &hellip;"
4617
 
4618
+ #: inc/class-jobtype-dbdump.php:163
4619
  #: inc/features/class-jobtype-dbdump-pro.php:466
4620
  #, php-format
4621
  #@ backwpup
4628
  msgid "%d. Try for MySQL System dump &hellip;"
4629
  msgstr "%d. Versuche, das MySQL-System-Backup zu erstellen …"
4630
 
4631
+ #: inc/features/class-jobtype-dbdump-pro.php:635
4632
  #@ backwpup
4633
  msgid "Compressing file &hellip;"
4634
  msgstr "Komprimiere Datei &hellip;"
4635
 
4636
+ #: inc/features/class-jobtype-dbdump-pro.php:677
4637
  #, php-format
4638
  #@ backwpup
4639
  msgid "%d. Try for database XML dump &hellip;"
4649
  msgid "Backup to email"
4650
  msgstr "Sicherung per E-Mail"
4651
 
4652
+ #: inc/class-destination-email.php:78
4653
  #@ backwpup
4654
  msgid "Max. file size where email send with. 0 = unlimited"
4655
  msgstr "Maximale Datei Größe des Archives das gesendet werden soll. 0 = unbegrenzt."
4656
 
4657
+ #: inc/class-destination-email.php:242
4658
  #, php-format
4659
  #@ backwpup
4660
  msgid "Sending email to %s &hellip;"
4661
  msgstr "Sende E-Mail an %s &hellip;"
4662
 
4663
+ #: inc/class-destination-email.php:333
4664
+ #: inc/class-destination-email.php:454
4665
  #@ backwpup
4666
  msgid "Error while sending email!"
4667
  msgstr "Fehler beim senden der E-Mail!"
4803
  msgid "Now back up!"
4804
  msgstr "Sichern Sie Ihre Daten jetzt!"
4805
 
4806
+ #: inc/class-page-backwpup.php:130
4807
  #@ backwpup
4808
  msgid "First steps"
4809
  msgstr "Erste Schritte"
4810
 
4811
+ #: inc/class-page-editjob.php:434
4812
  #@ backwpup
4813
  msgid "Tasks"
4814
  msgstr "Aufgaben"
4815
 
4816
+ #: inc/class-page-editjob.php:629
4817
  #@ backwpup
4818
  msgid "Start job with CLI"
4819
  msgstr "Auftrag per CLI starten"
4943
  msgid "%d. Try to send backup file to Dropbox &hellip;"
4944
  msgstr "%d. Versuche, Backup zur Dropbox zu schicken …"
4945
 
4946
+ #: inc/class-destination-email.php:230
4947
  #, php-format
4948
  #@ backwpup
4949
  msgid "%d. Try to send backup with email &hellip;"
4981
  msgid "Attention! You have updated from version 2.x"
4982
  msgstr "Achtung! Sie haben von Version 2.x aktualisiert."
4983
 
4984
+ #: inc/class-page-editjob.php:754
4985
  #@ backwpup
4986
  msgid "Minutes:"
4987
  msgstr "Minuten:"
5048
  msgid "All your passwords"
5049
  msgstr "All Ihre Passwörter"
5050
 
5051
+ #: inc/class-page-editjob.php:418
5052
  #@ backwpup
5053
  msgid "Name of this job"
5054
  msgstr "Name des Auftrags"
5055
 
5056
+ #: inc/class-page-editjob.php:430
5057
  #@ backwpup
5058
  msgid "What the job does"
5059
  msgstr "Was der Auftrag tut"
5060
 
5061
+ #: inc/class-page-editjob.php:466
5062
  #@ backwpup
5063
  msgid "Synchronize file by file to destination"
5064
  msgstr "Synchronisiere Datei für Datei zum Auftragsziel"
5065
 
5066
+ #: inc/class-page-editjob.php:476
5067
  #@ backwpup
5068
  msgid "Archive name"
5069
  msgstr "Archivname"
5156
  msgid "You can back up all your attachments, also all system files, plugins and themes in a single file. You can <a href=\"%s\">create a job</a> to update a backup copy of your file system only when files are changed."
5157
  msgstr "Sie können all Ihre Anhänge sichern, ebenso alle Systemdateien, Plugins und Themes – in einer einzigen Datei. Sie können einen <a href=\\\"%s\\\">Auftrag erstellen</a>, um die Sicherungskopie nur dann zu aktualisieren, wenn sich tatsächlich eine Datei geändert hat."
5158
 
5159
+ #: inc/class-page-editjob.php:622
5160
  #@ backwpup
5161
  msgid "Copy the link for an external start. This option has to be activated to make the link work."
5162
  msgstr "Kopieren Sie den Link für einen externen Auftragsstart. Diese Option muss erst aktiviert werden, damit der Link funktioniert."
5163
 
5164
+ #: inc/class-page-editjob.php:632
5165
  #, php-format
5166
  #@ backwpup
5167
  msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline or <a href=\"%s\">get the start script</a>."
5168
  msgstr "Verwenden Sie <a href=\"http://wp-cli.org/\">WP-CLI</a>, um Aufträge per Kommandozeile auszulösen, oder <a href=\"%s\">dieses Start-Script</a>."
5169
 
5170
+ #: inc/class-page-editjob.php:633
5171
  #@ backwpup
5172
  msgid "Generate a server script file to let the job start with the server’s cron on command line interface. Or use WP-CLI commands."
5173
  msgstr "Erzeugen Sie ein Serverscript, um einen Auftrag per Kommandoziele auszulösen, oder benutzen Sie WP-CLI."
5174
 
5175
+ #: inc/class-page-editjob.php:483
5176
  #, php-format
5177
  #@ backwpup
5178
  msgid "%d = Day of the month, 2 digits with leading zeros"
5179
  msgstr "%d = Tag des Monat, zwei Ziffern mit führender Null"
5180
 
5181
+ #: inc/class-page-editjob.php:484
5182
  #, php-format
5183
  #@ backwpup
5184
  msgid "%j = Day of the month without leading zeros"
5185
  msgstr "%j = Tag des Monat ohne führend Null"
5186
 
5187
+ #: inc/class-page-editjob.php:485
5188
  #, php-format
5189
  #@ backwpup
5190
  msgid "%m = Numeric representation of a month, two digits with leading zeros"
5191
  msgstr "%m = Numerische Angabe des Monats, zwei Ziffern mit führender Null"
5192
 
5193
+ #: inc/class-page-editjob.php:486
5194
  #, php-format
5195
  #@ backwpup
5196
  msgid "%n = Numeric representation of a month without leading zeros"
5197
  msgstr "%n = Numerische Angabe des Monats ohne führende Null"
5198
 
5199
+ #: inc/class-page-editjob.php:487
5200
  #, php-format
5201
  #@ backwpup
5202
  msgid "%Y = Four digit representation of a year"
5203
  msgstr "%Y = Vierstellige Angabe des Jahres"
5204
 
5205
+ #: inc/class-page-editjob.php:488
5206
  #, php-format
5207
  #@ backwpup
5208
  msgid "%y = Two digit representation of a year with leading zeros"
5209
  msgstr "%y = Zweistellige Angabe des Jahres mit führender Null"
5210
 
5211
+ #: inc/class-page-editjob.php:489
5212
  #, php-format
5213
  #@ backwpup
5214
  msgid "%a = Lowercase Ante meridiem and Post meridiem"
5215
  msgstr "%a = Klein geschriebene Tageszeit ante meridiem und post meridiem"
5216
 
5217
+ #: inc/class-page-editjob.php:490
5218
  #, php-format
5219
  #@ backwpup
5220
  msgid "%A = Uppercase Ante meridiem and Post meridiem"
5221
  msgstr "%A = Groß geschriebene Tageszeit ante meridiem und post meridiem"
5222
 
5223
+ #: inc/class-page-editjob.php:491
5224
  #, php-format
5225
  #@ backwpup
5226
  msgid "%B = Swatch Internet time"
5227
  msgstr "%B = Swatch-Internetzeit"
5228
 
5229
+ #: inc/class-page-editjob.php:492
5230
  #, php-format
5231
  #@ backwpup
5232
  msgid "%g = 12-hour format of an hour without leading zeros"
5233
  msgstr "%g = Zwölfstundenformat ohne führende Null"
5234
 
5235
+ #: inc/class-page-editjob.php:493
5236
  #, php-format
5237
  #@ backwpup
5238
  msgid "%G = 24-hour format of an hour without leading zeros"
5239
  msgstr "%G = Vierundzwanzigstundenformat ohne führende Null"
5240
 
5241
+ #: inc/class-page-editjob.php:494
5242
  #, php-format
5243
  #@ backwpup
5244
  msgid "%h = 12-hour format of an hour with leading zeros"
5245
  msgstr "%h = Zwölfstundenformat mit führender Null"
5246
 
5247
+ #: inc/class-page-editjob.php:495
5248
  #, php-format
5249
  #@ backwpup
5250
  msgid "%H = 24-hour format of an hour with leading zeros"
5251
  msgstr "%H = Vierundzwanzigstundenformat mit führender Null"
5252
 
5253
+ #: inc/class-page-editjob.php:496
5254
  #, php-format
5255
  #@ backwpup
5256
  msgid "%i = Minutes with leading zeros"
5257
  msgstr "%i = Minutenangabe mit führender Null"
5258
 
5259
+ #: inc/class-page-editjob.php:497
5260
  #, php-format
5261
  #@ backwpup
5262
  msgid "%s = Seconds with leading zeros"
5263
  msgstr "%s = Sekundenangabe mit führender Null"
5264
 
5265
+ #: inc/class-page-editjob.php:498
5266
  #, php-format
5267
  #@ backwpup
5268
  msgid "%u = Microseconds"
5269
  msgstr "%u = Mikrosekunden"
5270
 
5271
+ #: inc/class-page-editjob.php:499
5272
  #, php-format
5273
  #@ backwpup
5274
  msgid "%U = Seconds since the Unix epoch"
5275
  msgstr "%U = Sekunden seit Beginn der UNIX-Zeit"
5276
 
5277
+ #: inc/class-page-editjob.php:503
5278
  #@ backwpup
5279
  msgid "Replacement patterns:"
5280
  msgstr "Ersetzungsmuster:"
5333
  msgid "First set up a job, and plan what you want to save. Please note: the plugin author gives no warranty for your data."
5334
  msgstr "Erstellen Sie erst einen Auftrag, und planen Sie, was Sie sichern möchten. Bitte beachten Sie: Die Pluginautoren übernehmen keine Gewähr für Ihre Daten."
5335
 
5336
+ #: inc/class-page-editjob.php:310
5337
  #@ backwpup
5338
  msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
5339
  msgstr "Als <a href=\\\"http://de.wikipedia.org/wiki/Cron\\\">Cron-Job</a> ausführen:"
5402
  msgid "Include special files"
5403
  msgstr "Spezielle Dateien einschließen"
5404
 
5405
+ #: inc/features/class-jobtype-dbdump-pro.php:788
5406
  #, php-format
5407
  #@ backwpup
5408
  msgid "Dump database structure \"%s\""
5416
  #: inc/class-create-archive.php:78
5417
  #: inc/class-create-archive.php:128
5418
  #: inc/class-create-archive.php:141
5419
+ #: inc/class-mysqldump.php:106
5420
  #@ backwpup
5421
  msgid "Functions for gz compression not available"
5422
  msgstr "Die Funktionen für die Gzip-Kompression sind nicht verfügbar."
5423
 
5424
  #: inc/class-create-archive.php:93
5425
  #: inc/class-create-archive.php:147
5426
+ #: inc/class-mysqldump.php:110
5427
  #@ backwpup
5428
  msgid "Functions for bz2 compression not available"
5429
  msgstr "Die Funktionen für die Bz2-Kompression sind nicht verfügbar."
5454
  msgid "ZipArchive returns status: %s"
5455
  msgstr "Das Zip-Archive liefert den Status: %s"
5456
 
5457
+ #: inc/class-job.php:1613
5458
  #, php-format
5459
  #@ backwpup
5460
  msgid "%d. Trying to create backup archive &hellip;"
5461
  msgstr "%d. Versuche, Backup zu erstellen …"
5462
 
5463
+ #: inc/class-job.php:1620
5464
  #, php-format
5465
  #@ backwpup
5466
  msgctxt "Archive compression method"
5467
  msgid "Compression method is %s"
5468
  msgstr "Komprimierungsmethode ist %s"
5469
 
5470
+ #: inc/class-job.php:1647
5471
  #@ backwpup
5472
  msgid "Backup archive created."
5473
  msgstr "Backup wurde erstellt."
5474
 
5475
+ #: inc/class-mysqldump.php:122
5476
  #@ backwpup
5477
  msgid "Can not open dump file"
5478
  msgstr "Konnte Backup nicht öffnen"
5479
 
5480
+ #: inc/class-mysqldump.php:383
5481
  #@ backwpup
5482
  msgid "Error on writing to file!"
5483
  msgstr "Fehler beim Schreiben!"
5498
  msgid "XML File (phpMyAdmin schema)"
5499
  msgstr "XML-Datei (phpMyAdmin-Schema9"
5500
 
5501
+ #: inc/features/class-jobtype-dbdump-pro.php:628
5502
  #, php-format
5503
  #@ backwpup
5504
  msgctxt "Executed shell_exec() command"
5505
  msgid "CLI Exec: %s"
5506
  msgstr "CLI-Exec: %s"
5507
 
5508
+ #: inc/features/class-jobtype-dbdump-pro.php:631
5509
  #, php-format
5510
  #@ backwpup
5511
  msgctxt "Output of a shell_exec()"
5555
  msgid "This archive method can only add one file"
5556
  msgstr "Diese Archive-Methode kann nur eine einziges Datei sichern."
5557
 
5558
+ #: inc/class-mysqldump.php:92
5559
  #, php-format
5560
  #@ backwpup
5561
  msgctxt "Database Charset"
5562
  msgid "Can not set DB charset to %s"
5563
  msgstr "Kann Datenbank-Zeichenkodierung nicht auf %s setzen."
5564
 
5565
+ #: inc/class-page-backwpup.php:149
5566
  #@ backwpup
5567
  msgid "One click backup"
5568
  msgstr "Ein-Klick-Backup"
5572
  msgid "Path to the mysqldump file so a backup can be made with it. If it is correct and <em>shell_exec</em> is active the backup will made with a system command. If <em>shell_exec</em> not active this is disabled"
5573
  msgstr "Pfad zur MySQL-Datei, mit der ein Backup erstellt werden kann. Wenn es korrekt ist und <em>shell_exec</em> funktioniert, kann das Backup mit einem Systemkommando ausgelöst werden. Dies wird deaktiviert, wenn <em>shell_exec</em> nicht verfügbar ist."
5574
 
5575
+ #: inc/class-page-backwpup.php:151
5576
  #@ backwpup
5577
  msgid "Generate a database backup of WordPress tables and download it immediately!"
5578
  msgstr "Datenbank-Backup der WordPress-Tabellen erstellen und herunterladen."
5592
  msgid "File %s does not exist or is not readable"
5593
  msgstr "Die Datei %s existiert nicht, oder sie ist nicht lesbar."
5594
 
5595
+ #: inc/class-page-backwpup.php:151
5596
  #@ backwpup
5597
  msgid "Download database backup"
5598
  msgstr "Datenbank-Backup herunterladen"
5618
  msgid "[INFO] %1$s version %2$s; WordPress version %3$s; A project of Inpsyde GmbH developed by Daniel Hüsken"
5619
  msgstr "[INFO] %1$s Version %2$s; WordPress Version %3$s; Ein Projekt der Inpsyde GmbH, entwickelt von Daniel Hüsken"
5620
 
 
 
 
 
 
 
5621
  #: inc/class-page-about.php:103
5622
  #@ backwpup
5623
  msgid "Please activate your license"
5652
  msgid "Plugin on wordpress.org"
5653
  msgstr "Plugin auf wordpress.org"
5654
 
5655
+ #: inc/class-job.php:1569
5656
  #, php-format
5657
  #@ backwpup
5658
  msgctxt "Folder name"
5659
  msgid "Folder %s not exists"
5660
  msgstr "Verzeichnis %s existiert nicht"
5661
 
5662
+ #: inc/class-job.php:1573
5663
  #, php-format
5664
  #@ backwpup
5665
  msgctxt "Folder name"
5853
  msgid "GET PRO"
5854
  msgstr "GET PRO"
5855
 
5856
+ #. translators: plugin header field 'Version'
5857
+ #: backwpup.php:0
5858
+ #@ backwpup
5859
+ msgid "3.0.1"
5860
+ msgstr ""
5861
+
5862
+ #: inc/class-destination-s3.php:187
5863
+ #@ backwpup
5864
+ msgid "Multipart Upload"
5865
+ msgstr "Multipart Upload"
5866
+
5867
+ #: inc/class-destination-s3.php:191
5868
+ #@ backwpup
5869
+ msgid "Use multipart upload for uploading a file"
5870
+ msgstr "Benutze Multipart Upload zu hochladen der Datei"
5871
+
5872
+ #: inc/class-destination-s3.php:192
5873
+ #@ backwpup
5874
+ msgid "Mutipart split the file into peaces of chucks while uploading. It is needed for displaying upload process and can transfer bigger files. Im moment there are problems on Google storage with this option"
5875
+ msgstr "Multipart splittet den Upload in mehrere teile auf. Das wird benötigt um die Fortschrittsanzeige zu machen und um groß Dateien hochzuladen. Im moment gibt es mit dieser Option Probleme bei Google Storage"
5876
+
5877
+ #: inc/class-destination-s3.php:393
5878
+ #, php-format
5879
+ #@ backwpup
5880
+ msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
5881
+ msgstr "Verbunden zum S3 Bucket \"%1$s\" in %2$s"
5882
+
5883
+ #: inc/class-destination-email.php:90
5884
+ #@ backwpup
5885
+ msgid "Sender name"
5886
+ msgstr "Absender NAme"
5887
+
5888
+ #: inc/class-destination-email.php:94
5889
+ #@ backwpup
5890
+ msgid "Name of email sender"
5891
+ msgstr "Name des Absenders der E-Mail"
5892
+
5893
+ #: inc/class-page-editjob.php:566
5894
+ #@ backwpup
5895
+ msgid "Send to email address"
5896
+ msgstr "Sende zur E-Mail Adresse"
5897
+
5898
+ #: inc/class-page-editjob.php:574
5899
+ #@ backwpup
5900
+ msgid "Email sender name"
5901
+ msgstr "E-Mail Absender Name"
5902
+
5903
+ #: inc/class-page-editjob.php:578
5904
+ #@ backwpup
5905
+ msgid "Name and email of email sender in the mail formant. Name &lt;emailadress&gt;"
5906
+ msgstr "Name des E-Mail Senders im E-MAil formart. <code>Name &lt;E-Mail-Adresse&gt;</code>"
5907
+
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
3
  Tags: backup, dump, database, file, ftp, xml, time, upload, multisite, cloud, dropbox, storage, S3
4
  Requires at least: 3.2
5
  Tested up to: 3.5.1
6
- Stable tag: 3.0.1
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -15,29 +15,36 @@ The backup files can be used to save your whole installation including `/wp-cont
15
  and push them to an external Backup Service, if you don’t want to save the backups on
16
  the same server. With the single backup .zip file you are able to restore an installation.
17
 
18
- * Database Backup
19
  * WordPress XML Export
20
  * Generate a file with installed plugins
21
  * Optimize Database
22
  * Check and repair Database
23
  * File backup
24
- * Security scan
25
- * Backups in zip, tar, tar.gz, tar.bz2 format
26
  * Store backup to directory
27
- * Store backup to FTP server
28
- * Store backup to S3 services
29
- * Store backup to Microsoft Azure (Blob)
30
- * Store backup to RackSpaceCloud
31
- * Store backup to Dropbox
32
- * Store backup to SugarSync
33
  * Send logs and backups by email
34
  * Multi-site support only as network admin
35
 
36
  Get the Pro Version: http://marketpress.com/product/backwpup-pro/
37
 
38
- ** WordPress 3.2 and PHP 5.2.6 required! **
39
 
40
- ** Test your Backups! **
 
 
 
 
 
 
 
 
41
 
42
  == Frequently Asked Questions ==
43
 
@@ -75,6 +82,20 @@ Please check all settings after the update:
75
 
76
  == Changelog ==
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  = Version 3.0 =
79
  * Added: Jobs can now be started with an external link or per command line
80
  * Added: Backups can now be compressed with gz or bzip2
3
  Tags: backup, dump, database, file, ftp, xml, time, upload, multisite, cloud, dropbox, storage, S3
4
  Requires at least: 3.2
5
  Tested up to: 3.5.1
6
+ Stable tag: 3.0.2
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
15
  and push them to an external Backup Service, if you don’t want to save the backups on
16
  the same server. With the single backup .zip file you are able to restore an installation.
17
 
18
+ * Database Backup *(needs mysqli)*
19
  * WordPress XML Export
20
  * Generate a file with installed plugins
21
  * Optimize Database
22
  * Check and repair Database
23
  * File backup
24
+ * Backups in zip, tar, tar.gz, tar.bz2 format *(needs gz, bz2, ZipArchive)*
 
25
  * Store backup to directory
26
+ * Store backup to FTP server *(needs ftp)*
27
+ * Store backup to S3 services *(needs PHP 5.3.3, curl)*
28
+ * Store backup to Microsoft Azure (Blob) *(needs PHP 5.3.2, curl)*
29
+ * Store backup to RackSpaceCloud *(needs PHP 5.3.2, curl)*
30
+ * Store backup to Dropbox *(needs curl)*
31
+ * Store backup to SugarSync *(needs curl)*
32
  * Send logs and backups by email
33
  * Multi-site support only as network admin
34
 
35
  Get the Pro Version: http://marketpress.com/product/backwpup-pro/
36
 
37
+ **WordPress 3.2 and PHP 5.2.6 required!**
38
 
39
+ **To use the Plugin with full functionality PHP 5.3.3 with mysqli, FTP,gz, bz2, ZipArchive and curl is needed.**
40
+
41
+ **Plugin functions that don't work will be not displayed.**
42
+
43
+ **Test your Backups!**
44
+
45
+ **Made by [Inpsyde](http://inpsyde.com) &middot; We love WordPress**
46
+
47
+ Have a look at the premium plugins in our [market](http://marketpress.com).
48
 
49
  == Frequently Asked Questions ==
50
 
82
 
83
  == Changelog ==
84
 
85
+ = Version 3.0.2 =
86
+ * Fixed: Warnings on job edit tab files
87
+ * Fixed: folder name on temp cleanup in cron
88
+ * Fixed: Setting charset on sql backup
89
+ * Fixed: DB Connection on database backup if hostname has a port
90
+ * Fixed: Call undefined function apc_clear_cache()
91
+ * Fixed: wp-content selected folders not excluded
92
+ * Added: Deactivation off multi part upload for S3 Services
93
+ * Added: fallback for mysql_ping()
94
+ * Added: Options for email senders name
95
+ * Changed: 5 minutes cron steps back
96
+ * Removed: Flashing admin bar icon
97
+ * Updated: OpenCloud API to Version 1.4.1
98
+
99
  = Version 3.0 =
100
  * Added: Jobs can now be started with an external link or per command line
101
  * Added: Backups can now be compressed with gz or bzip2
sdk/OpenCloud/asyncresponse.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Rackspace Cloud DNS service asynchronous response object
4
+ *
5
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
6
+ * See COPYING for licensing information
7
+ *
8
+ * @package phpOpenCloud
9
+ * @version 1.0
10
+ * @author Glen Campbell <glen.campbell@rackspace.com>
11
+ */
12
+
13
+ namespace OpenCloud\DNS;
14
+
15
+ require_once(__DIR__.'/persistentobject.php');
16
+
17
+ /**
18
+ * The AsyncResponse class encapsulates the data returned by a Cloud DNS
19
+ * asynchronous response.
20
+ */
21
+ class AsyncResponse extends \OpenCloud\PersistentObject {
22
+
23
+ public
24
+ $jobId,
25
+ $callbackUrl,
26
+ $status,
27
+ $requestUrl,
28
+ $verb,
29
+ $request,
30
+ $response,
31
+ $error;
32
+
33
+ protected static
34
+ $json_name=FALSE;
35
+
36
+ /**
37
+ * constructs a new AsyncResponse object from a JSON
38
+ * string
39
+ *
40
+ * @param \OpenCloud\Service $service the calling service
41
+ * @param string $json the json response from the initial request
42
+ */
43
+ public function __construct(\OpenCloud\Service $service, $json=NULL) {
44
+ if (!$json)
45
+ return;
46
+ $obj = json_decode($json);
47
+ if ($this->CheckJsonError())
48
+ return;
49
+ parent::__construct($service, $obj);
50
+ }
51
+
52
+ /**
53
+ * URL for status
54
+ *
55
+ * We always show details
56
+ *
57
+ * @return string
58
+ */
59
+ public function Url($subresource=NULL, $qstr=array()) {
60
+ return $this->callbackUrl.'?showDetails=True';
61
+ }
62
+
63
+ /**
64
+ * returns the Name of the request (the job ID)
65
+ *
66
+ * @return string
67
+ */
68
+ public function Name() {
69
+ return $this->jobId;
70
+ }
71
+
72
+ /**
73
+ * overrides for methods
74
+ */
75
+ public function Create($parm=array()) { return $this->NoCreate(); }
76
+ public function Update($parm=array()) { return $this->NoUpdate(); }
77
+ public function Delete() { return $this->NoDelete(); }
78
+ public function PrimaryKeyField() { return 'jobId'; }
79
+ }
sdk/OpenCloud/compute.php CHANGED
@@ -76,6 +76,13 @@ class Compute extends Nova {
76
  $urltype
77
  );
78
 
 
 
 
 
 
 
 
79
  // load extension namespaces
80
  $this->load_namespaces();
81
  } // function __construct()
76
  $urltype
77
  );
78
 
79
+ // check the URL version
80
+ $path = parse_url($this->Url(), PHP_URL_PATH);
81
+ if (substr($path, 0, 3) == '/v1')
82
+ throw new Compute\UnsupportedVersionError(sprintf(
83
+ _('Sorry; API version /v1 is not supported [%s]'),
84
+ $this->Url()));
85
+
86
  // load extension namespaces
87
  $this->load_namespaces();
88
  } // function __construct()
sdk/OpenCloud/dataobject.php CHANGED
@@ -37,7 +37,15 @@ class DataObject extends ObjStoreBase {
37
  private
38
  $data, // the actual data
39
  $etag, // the ETag
40
- $container; // the container used by this object
 
 
 
 
 
 
 
 
41
 
42
  /**
43
  * A DataObject is related to a container and has a name
@@ -125,9 +133,10 @@ class DataObject extends ObjStoreBase {
125
  */
126
  $this->debug('Uploading %u bytes from %s', $filesize, $filename);
127
  }
128
- else
129
  // compute the length
130
  $this->content_length = strlen($this->data);
 
131
 
132
  // flag missing Content-Type
133
  if (!$this->content_type)
@@ -160,8 +169,17 @@ class DataObject extends ObjStoreBase {
160
  return FALSE;
161
  }
162
 
 
 
 
 
 
 
 
 
163
  if ($fp)
164
  fclose($fp);
 
165
  return $response;
166
  } // create()
167
 
@@ -250,6 +268,53 @@ class DataObject extends ObjStoreBase {
250
  return $this->container;
251
  }
252
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
253
  /**
254
  * Sets object data from string
255
  *
37
  private
38
  $data, // the actual data
39
  $etag, // the ETag
40
+ $container, // the container used by this object
41
+ /**
42
+ * this array translates header values (returned by requests) into
43
+ * properties
44
+ */
45
+ $header_translate = array(
46
+ 'Etag' => 'hash',
47
+ 'Last-Modified' => 'last_modified'
48
+ );
49
 
50
  /**
51
  * A DataObject is related to a container and has a name
133
  */
134
  $this->debug('Uploading %u bytes from %s', $filesize, $filename);
135
  }
136
+ else {
137
  // compute the length
138
  $this->content_length = strlen($this->data);
139
+ }
140
 
141
  // flag missing Content-Type
142
  if (!$this->content_type)
169
  return FALSE;
170
  }
171
 
172
+ // set values from response
173
+ foreach($response->Headers() as $key => $value) {
174
+ if (isset($this->header_translate[$key])) {
175
+ $this->{$this->header_translate[$key]} = $value;
176
+ }
177
+ }
178
+
179
+ // close the file handle
180
  if ($fp)
181
  fclose($fp);
182
+
183
  return $response;
184
  } // create()
185
 
268
  return $this->container;
269
  }
270
 
271
+ /**
272
+ * returns the TEMP_URL for the object
273
+ *
274
+ * Some notes:
275
+ * * The `$secret` value is arbitrary; it must match the value set for
276
+ * the `X-Account-Meta-Temp-URL-Key` on the account level. This can be
277
+ * set by calling `$service->SetTempUrlSecret($secret)`.
278
+ * * The `$expires` value is the number of seconds you want the temporary
279
+ * URL to be valid for. For example, use `60` to make it valid for a
280
+ * minute
281
+ * * The `$method` must be either GET or PUT. No other methods are
282
+ * supported.
283
+ *
284
+ * @param string $secret the shared secret
285
+ * @param integer $expires the expiration time (in seconds)
286
+ * @param string $method either GET or PUT
287
+ * @return string the temporary URL
288
+ */
289
+ public function TempUrl($secret, $expires, $method) {
290
+ $method = strtoupper($method);
291
+ $expiry_time = time() + $expires;
292
+
293
+ // check for proper method
294
+ switch($method) {
295
+ case 'GET':
296
+ case 'PUT':
297
+ break;
298
+ default:
299
+ throw new TempUrlMethodError(sprintf(
300
+ _('Bad method [%s] for TempUrl; only GET or PUT supported'),
301
+ $method));
302
+ }
303
+
304
+ // construct the URL
305
+ $url = $this->Url();
306
+ $path = parse_url($url, PHP_URL_PATH);
307
+ $temp_url = sprintf('%s?temp_url_sig=%s&temp_url_expires=%d',
308
+ $url,
309
+ hash_hmac('sha1', "$method\n$expires\n$path", $secret),
310
+ $expiry_time);
311
+
312
+ // debug that stuff
313
+ $this->debug('TempUrl generated [%s]', $temp_url);
314
+
315
+ return $temp_url;
316
+ }
317
+
318
  /**
319
  * Sets object data from string
320
  *
sdk/OpenCloud/dns.php ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Rackspace Cloud DNS service
4
+ *
5
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
6
+ * See COPYING for licensing information
7
+ *
8
+ * @package phpOpenCloud
9
+ * @version 1.0
10
+ * @author Glen Campbell <glen.campbell@rackspace.com>
11
+ */
12
+
13
+ namespace OpenCloud;
14
+
15
+ require_once(__DIR__.'/asyncresponse.php');
16
+ require_once(__DIR__.'/domain.php');
17
+ require_once(__DIR__.'/record.php');
18
+ require_once(__DIR__.'/ptrrecord.php');
19
+ require_once(__DIR__.'/service.php');
20
+
21
+ class DNS extends Service {
22
+
23
+ /**
24
+ * creates a new DNS object
25
+ *
26
+ * @param \OpenCloud\OpenStack $conn connection object
27
+ * @param string $serviceName the name of the service
28
+ * @param string $serviceRegion (not currently used; DNS is regionless)
29
+ * @param string $urltype the type of URL
30
+ */
31
+ public function __construct(OpenStack $conn,
32
+ $serviceName, $serviceRegion, $urltype) {
33
+ $this->debug(_('initializing DNS...'));
34
+ parent::__construct(
35
+ $conn,
36
+ 'rax:dns',
37
+ $serviceName,
38
+ $serviceRegion,
39
+ $urltype
40
+ );
41
+ } // function __construct()
42
+
43
+ /**
44
+ * Returns the selected endpoint URL of this Service
45
+ *
46
+ * @param string $resource - a child resource. For example,
47
+ * passing 'servers' would return .../servers. Should *not* be
48
+ * prefixed with a slash (/).
49
+ * @param array $args (optional) an array of key-value pairs for query
50
+ * strings to append to the URL
51
+ * @returns string - the requested URL
52
+ */
53
+ public function Url($resource='', $args=array()) {
54
+ $baseurl = parent::Url();
55
+ if ($resource != '')
56
+ $baseurl = noslash($baseurl).'/'.$resource;
57
+ if (!empty($args))
58
+ $baseurl .= '?'.$this->MakeQueryString($args);
59
+ return $baseurl;
60
+ }
61
+
62
+ /**
63
+ * returns a DNS::Domain object
64
+ *
65
+ * @api
66
+ * @param mixed $info either the ID, an object, or array of parameters
67
+ * @return DNS\Domain
68
+ */
69
+ public function Domain($info=NULL) {
70
+ return new DNS\Domain($this, $info);
71
+ }
72
+
73
+ /**
74
+ * returns a Collection of DNS::Domain objects
75
+ *
76
+ * @api
77
+ * @param array $filter key/value pairs to use as query strings
78
+ * @return \OpenCloud\Collection
79
+ */
80
+ public function DomainList($filter=array()) {
81
+ $url = $this->Url(DNS\Domain::ResourceName(), $filter);
82
+ return $this->Collection('\OpenCloud\DNS\Domain', $url);
83
+ }
84
+
85
+ /**
86
+ * returns a PtrRecord object for a server
87
+ *
88
+ * @param mixed $info ID, array, or object containing record data
89
+ * @return Record
90
+ */
91
+ public function PtrRecord($info=NULL) {
92
+ return new DNS\PtrRecord($this, $info);
93
+ }
94
+
95
+ /**
96
+ * returns a Collection of PTR records for a given Server
97
+ *
98
+ * @param \OpenCloud\Compute\Server $server the server for which to
99
+ * retrieve the PTR records
100
+ * @return Collection
101
+ */
102
+ public function PtrRecordList(\OpenCloud\Compute\Server $server) {
103
+ $service_name = $server->Service()->Name();
104
+ $url = $this->Url('rdns/'.$service_name);
105
+ $url .= '?' . $this->MakeQueryString(array('href'=>$server->Url()));
106
+ return $this->Collection('\OpenCloud\DNS\PtrRecord', $url);
107
+ }
108
+
109
+ /**
110
+ * performs a HTTP request
111
+ *
112
+ * This method overrides the request with JSON content type
113
+ *
114
+ * @param string $url the URL to target
115
+ * @param string $method the HTTP method to use
116
+ * @param array $headers key/value pairs for headers to include
117
+ * @param string $body the body of the request (for PUT and POST)
118
+ * @return \OpenCloud\HttpResponse
119
+ */
120
+ public function Request($url,$method='GET',$headers=array(),$body=NULL) {
121
+ $headers['Accept'] = RAXSDK_CONTENT_TYPE_JSON;
122
+ $headers['Content-Type'] = RAXSDK_CONTENT_TYPE_JSON;
123
+ return parent::Request($url, $method, $headers, $body);
124
+ }
125
+
126
+ /**
127
+ * retrieves an asynchronous response
128
+ *
129
+ * This method calls the provided `$url` and expects an asynchronous
130
+ * response. It checks for various HTTP error codes and returns
131
+ * an `AsyncResponse` object. This object can then be used to poll
132
+ * for the status or to retrieve the final data as needed.
133
+ *
134
+ * @param string $url the URL of the request
135
+ * @param string $method the HTTP method to use
136
+ * @param array $headers key/value pairs for headers to include
137
+ * @param string $body the body of the request (for PUT and POST)
138
+ * @return DNS\AsyncResponse
139
+ */
140
+ public function AsyncRequest(
141
+ $url, $method='GET', $headers=array(), $body=NULL) {
142
+
143
+ // perform the initial request
144
+ $resp = $this->Request($url, $method, $headers, $body);
145
+
146
+ // check response status
147
+ if ($resp->HttpStatus() > 204)
148
+ throw new DNS\AsyncHttpError(sprintf(
149
+ _('Unexpected HTTP status for async request: '.
150
+ 'URL [%s] method [%s] status [%s] response [%s]'),
151
+ $url, $method, $resp->HttpStatus(), $resp->HttpBody()));
152
+
153
+ // debug
154
+ $this->debug('AsyncResponse [%s]', $resp->HttpBody());
155
+
156
+ // return an AsyncResponse object
157
+ return new DNS\AsyncResponse($this, $resp->HttpBody());
158
+ }
159
+
160
+ /**
161
+ * imports domain records
162
+ *
163
+ * Note that this function is called from the service (DNS) level, and
164
+ * not (as you might suspect) from the Domain object. Because the function
165
+ * return an AsyncResponse, the domain object will not actually exist
166
+ * until some point after the import has occurred.
167
+ *
168
+ * @api
169
+ * @param string $data the BIND_9 formatted data to import
170
+ * @return DNS\AsyncResponse
171
+ */
172
+ public function Import($data) {
173
+ // determine the URL
174
+ $url = $this->Url('domains/import');
175
+
176
+ // create the JSON object
177
+ $obj = new \stdClass;
178
+ $obj->domains = array();
179
+ $dom = new \stdClass;
180
+ $dom->contents = $data;
181
+ $dom->contentType = 'BIND_9';
182
+ $obj->domains[] = $dom;
183
+
184
+ // encode it
185
+ $json = json_encode($obj);
186
+
187
+ // debug it
188
+ $this->debug('Importing [%s]', $json);
189
+
190
+ // perform the request
191
+ return $this->AsyncRequest($url, 'POST', array(), $json);
192
+ }
193
+
194
+ /**
195
+ * returns a list of limits
196
+ *
197
+ */
198
+ public function Limits($type=NULL) {
199
+ $url = $this->url('limits');
200
+ if (isset($type))
201
+ $url .= '/'.$type;
202
+
203
+ // perform the request
204
+ $obj = $this->SimpleRequest($url);
205
+
206
+ if (isset($type))
207
+ return $obj;
208
+ else
209
+ return $obj->limits;
210
+ }
211
+
212
+ /**
213
+ * returns an array of limit types
214
+ *
215
+ * @return array
216
+ */
217
+ public function LimitTypes() {
218
+ $url = $this->Url('limits/types');
219
+ $obj = $this->SimpleRequest($url);
220
+ return $obj->limitTypes;
221
+ }
222
+
223
+ /**
224
+ * performs a simple request and returns the JSON as an object
225
+ *
226
+ * @param string $url the URL to GET
227
+ */
228
+ public function SimpleRequest($url) {
229
+ // perform the request
230
+ $resp = $this->Request($url);
231
+
232
+ // check for errors
233
+ if ($resp->HttpStatus() > 202)
234
+ throw new \OpenCloud\HttpError(sprintf(
235
+ _('Unexpected status [%s] for URL [%s], body [%s]'),
236
+ $resp->HttpStatus(),
237
+ $url,
238
+ $resp->HttpBody()));
239
+
240
+ // decode the JSON
241
+ $json = $resp->HttpBody();
242
+ $this->debug(_('Limit Types JSON [%s]'), $json);
243
+ $obj = json_decode($json);
244
+ if ($this->CheckJsonError())
245
+ return FALSE;
246
+
247
+ return $obj;
248
+ }
249
+
250
+ } // end class DNS
sdk/OpenCloud/dnsobject.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Rackspace Cloud DNS persistent object
4
+ *
5
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
6
+ * See COPYING for licensing information
7
+ *
8
+ * @package phpOpenCloud
9
+ * @version 1.0
10
+ * @author Glen Campbell <glen.campbell@rackspace.com>
11
+ */
12
+
13
+ namespace OpenCloud\DNS;
14
+
15
+ require_once(__DIR__.'/persistentobject.php');
16
+ require_once(__DIR__.'/asyncresponse.php');
17
+
18
+ /**
19
+ * The DnsObject class is an extension of the PersistentObject class that
20
+ * permits the asynchronous responses used by Cloud DNS
21
+ *
22
+ */
23
+ abstract class DnsObject extends \OpenCloud\PersistentObject {
24
+
25
+ /**
26
+ * Create() returns an asynchronous response
27
+ *
28
+ * @param array $params array of key/value pairs
29
+ * @return AsyncResponse
30
+ */
31
+ public function Create($params=array()) {
32
+ $resp = parent::Create($params);
33
+ return new AsyncResponse($this->Service(), $resp->HttpBody());
34
+ }
35
+
36
+ /**
37
+ * Update() returns an asynchronous response
38
+ *
39
+ * @param array $params array of key/value pairs
40
+ * @return AsyncResponse
41
+ */
42
+ public function Update($params=array()) {
43
+ $resp = parent::Update($params);
44
+ return new AsyncResponse($this->Service(), $resp->HttpBody());
45
+ }
46
+
47
+ /**
48
+ * Delete() returns an asynchronous response
49
+ *
50
+ * @param array $params array of key/value pairs
51
+ * @return AsyncResponse
52
+ */
53
+ public function Delete() {
54
+ $resp = parent::Delete();
55
+ return new AsyncResponse($this->Service(), $resp->HttpBody());
56
+ }
57
+
58
+ /**
59
+ * returns the create keys
60
+ */
61
+ public function CreateKeys() {
62
+ return $this->_create_keys;
63
+ }
64
+
65
+ /* ---------- PROTECTED METHODS ---------- */
66
+
67
+ /**
68
+ * creates the JSON for create
69
+ *
70
+ * @return stdClass
71
+ */
72
+ protected function CreateJson() {
73
+ $obj = new \stdClass;
74
+ if (!isset($this->_create_keys))
75
+ throw new \OpenCloud\CreateError(_('Missing [_create_keys]'));
76
+ $top = self::JsonCollectionName();
77
+ $obj->{$top} = array();
78
+ $obj->{$top}[] = $this->GetJson($this->_create_keys);
79
+ return $obj;
80
+ }
81
+
82
+ /**
83
+ * creates the JSON for update
84
+ *
85
+ * @return stdClass
86
+ */
87
+ protected function UpdateJson($params=array()) {
88
+ if (!isset($this->_update_keys))
89
+ throw new \OpenCloud\UpdateError(_('Missing [_update_keys]'));
90
+ return $this->GetJson($this->_update_keys);
91
+ }
92
+
93
+ /* ---------- PRIVATE METHODS ---------- */
94
+
95
+ /**
96
+ * returns JSON based on $keys
97
+ *
98
+ * @param array $keys list of items to include
99
+ * @return stdClass
100
+ */
101
+ private function GetJson($keys) {
102
+ $obj = new \stdClass;
103
+ foreach($keys as $item)
104
+ if ($this->$item)
105
+ $obj->$item = $this->$item;
106
+ return $obj;
107
+ }
108
+
109
+ } // class DnsObject
sdk/OpenCloud/domain.php ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Defines a DNS domain
4
+ *
5
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
6
+ * See COPYING for licensing information
7
+ *
8
+ * @package phpOpenCloud
9
+ * @version 1.0
10
+ * @author Glen Campbell <glen.campbell@rackspace.com>
11
+ */
12
+
13
+ namespace OpenCloud\DNS;
14
+
15
+ require_once(__DIR__.'/dnsobject.php');
16
+ require_once(__DIR__.'/record.php');
17
+
18
+ /**
19
+ * The Domain class represents a single domain
20
+ *
21
+ * Note that the `Subdomain` class is defined in this same file because of
22
+ * mutual dependencies.
23
+ *
24
+ * @api
25
+ * @author Glen Campbell <glen.campbell@rackspace.com>
26
+ */
27
+ class Domain extends DnsObject {
28
+
29
+ public
30
+ $id,
31
+ $accountId,
32
+ $ttl,
33
+ $updated,
34
+ $emailAddress,
35
+ $created,
36
+ $name,
37
+ $comment;
38
+
39
+ protected static
40
+ $json_name = FALSE,
41
+ $json_collection_name = 'domains',
42
+ $url_resource = 'domains';
43
+
44
+ protected
45
+ $_create_keys = array('name','emailAddress','ttl','comment'),
46
+ $_update_keys = array('emailAddress','ttl','comment');
47
+
48
+ private
49
+ $records = array(),
50
+ $subdomains = array();
51
+
52
+ /**
53
+ * returns a Record object
54
+ *
55
+ * Note that this method is available at the DNS level, but only for
56
+ * PTR records.
57
+ *
58
+ * @return Record
59
+ */
60
+ public function Record($info=NULL) {
61
+ return new Record($this, $info);
62
+ }
63
+
64
+ /**
65
+ * returns a Collection of Record objects
66
+ *
67
+ * @param array $filter query-string parameters
68
+ * @return \OpenCloud\Collection
69
+ */
70
+ public function RecordList($filter=array()) {
71
+ return $this->Parent()->Collection(
72
+ '\OpenCloud\DNS\Record', NULL, $this, $filter);
73
+ }
74
+
75
+ /**
76
+ * returns a Subdomain object (child of current domain)
77
+ *
78
+ */
79
+ public function Subdomain($info=array()) {
80
+ return new Subdomain($this, $info);
81
+ }
82
+
83
+ /**
84
+ * returns a Collection of subdomains
85
+ *
86
+ * The subdomains are all `DNS:Domain` objects that are children of
87
+ * the current domain.
88
+ *
89
+ * @param array $filter key/value pairs for query string parameters
90
+ * return \OpenCloud\Collection
91
+ */
92
+ public function SubdomainList($filter=array()) {
93
+ return $this->Parent()->Collection(
94
+ '\OpenCloud\DNS\Subdomain', NULL, $this);
95
+ }
96
+
97
+ /**
98
+ * Adds a new record to the list (for multiple record creation)
99
+ *
100
+ * @api
101
+ * @param Record $rec the record to add
102
+ * @return integer the number of records
103
+ */
104
+ public function AddRecord(Record $rec) {
105
+ $this->records[] = $rec;
106
+ return count($this->records);
107
+ }
108
+
109
+ /**
110
+ * adds a new subdomain (for multiple subdomain creation)
111
+ *
112
+ * @api
113
+ * @param Subdomain $subd the subdomain to add
114
+ * @return integer the number of subdomains
115
+ */
116
+ public function AddSubdomain(Subdomain $subd) {
117
+ $this->subdomains[] = $subd;
118
+ return count($this->subdomains);
119
+ }
120
+
121
+ /**
122
+ * returns changes since a specified date/time
123
+ *
124
+ * @param string $since the date or time
125
+ * @return DNS\Changes
126
+ */
127
+ public function Changes($since=NULL) {
128
+ if (isset($since))
129
+ $url = $this->Url('changes', array('since'=>$since));
130
+ else
131
+ $url = $this->Url('changes');
132
+
133
+ // perform the request
134
+ $obj = $this->Service()->SimpleRequest($url);
135
+
136
+ return $obj;
137
+ }
138
+
139
+ /**
140
+ * exports the domain
141
+ *
142
+ * @return AsyncResponse
143
+ */
144
+ public function Export() {
145
+ $url = $this->Url('export');
146
+ return $this->Service()->AsyncRequest($url);
147
+ }
148
+
149
+ /* ---------- PROTECTED METHODS ---------- */
150
+
151
+ /**
152
+ * handles creation of multiple records at Create()
153
+ *
154
+ * @api
155
+ * @return \stdClass
156
+ */
157
+ protected function CreateJson() {
158
+ $obj = parent::CreateJson();
159
+
160
+ // add records, if any
161
+ if (count($this->records) > 0) {
162
+ $recobj = new \stdClass;
163
+ $recobj->records = array();
164
+ foreach($this->records as $rec) {
165
+ $robj = new \stdClass;
166
+ foreach($rec->CreateKeys() as $key)
167
+ if (isset($rec->$key))
168
+ $robj->$key = $rec->$key;
169
+ $recobj->records[] = $robj;
170
+ }
171
+ $obj->domains[0]->recordsList = $recobj;
172
+ }
173
+
174
+ // add subdomains, if any
175
+ if (count($this->subdomains) > 0) {
176
+ $sub = new \stdClass;
177
+ $sub->domains = array();
178
+ foreach($this->subdomains as $subdom) {
179
+ $sobj = new \stdClass;
180
+ foreach($subdom->CreateKeys() as $key)
181
+ if (isset($subdom->$key))
182
+ $sobj->$key = $subdom->$key;
183
+ $sub->domains[] = $sobj;
184
+ }
185
+ $obj->domains[0]->subdomains = $sub;
186
+ }
187
+
188
+ return $obj;
189
+ }
190
+
191
+ } // class Domain
192
+
193
+ /**
194
+ * The Subdomain is basically another domain, albeit one that is a child of
195
+ * a parent domain. In terms of the code involved, the JSON is slightly
196
+ * different than a top-level domain, and the parent is a domain instead of
197
+ * the DNS service itself.
198
+ */
199
+ class Subdomain extends Domain {
200
+
201
+ protected static
202
+ $json_name = FALSE,
203
+ $json_collection_name = 'domains',
204
+ $url_resource = 'subdomains';
205
+
206
+ private
207
+ $_parent;
208
+
209
+ /**
210
+ */
211
+ public function __construct(Domain $parent, $info=array()) {
212
+ $this->_parent = $parent;
213
+ return parent::__construct($parent->Service(), $info);
214
+ }
215
+
216
+ /**
217
+ * returns the parent domain object
218
+ */
219
+ public function Parent() {
220
+ return $this->_parent;
221
+ }
222
+
223
+ } // class Subdomain
sdk/OpenCloud/exceptions.php CHANGED
@@ -35,6 +35,7 @@ namespace OpenCloud {
35
  class HttpOverLimitError extends \Exception {}
36
  class IdRequiredError extends \Exception {}
37
  class InstanceNotFound extends \Exception {}
 
38
  class JsonError extends \Exception {}
39
  class ServerActionError extends \Exception {}
40
  class ServiceValueError extends \Exception {}
@@ -83,6 +84,7 @@ namespace OpenCloud\Compute {
83
  class ServerUrlError extends \Exception {}
84
  class ServerJsonError extends \Exception {}
85
  class UnsupportedFeatureExtension extends \Exception {}
 
86
  class VolumeError extends \Exception {}
87
 
88
  }
@@ -111,6 +113,7 @@ namespace OpenCloud\ObjectStore {
111
  class ObjectError extends \Exception {} // SyntaxException
112
  class ObjectCopyError extends \Exception {}
113
  class ObjFetchError extends \Exception {}
 
114
  class UnknownParameterError extends \Exception {}
115
  }
116
 
@@ -151,3 +154,13 @@ namespace OpenCloud\VolumeService {
151
  namespace OpenCloud\LoadBalancerService {
152
  class MissingValueError extends \Exception {}
153
  }
 
 
 
 
 
 
 
 
 
 
35
  class HttpOverLimitError extends \Exception {}
36
  class IdRequiredError extends \Exception {}
37
  class InstanceNotFound extends \Exception {}
38
+ class InvalidArgumentError extends \Exception {}
39
  class JsonError extends \Exception {}
40
  class ServerActionError extends \Exception {}
41
  class ServiceValueError extends \Exception {}
84
  class ServerUrlError extends \Exception {}
85
  class ServerJsonError extends \Exception {}
86
  class UnsupportedFeatureExtension extends \Exception {}
87
+ class UnsupportedVersionError extends \Exception {}
88
  class VolumeError extends \Exception {}
89
 
90
  }
113
  class ObjectError extends \Exception {} // SyntaxException
114
  class ObjectCopyError extends \Exception {}
115
  class ObjFetchError extends \Exception {}
116
+ class TempUrlMethodError extends \Exception {}
117
  class UnknownParameterError extends \Exception {}
118
  }
119
 
154
  namespace OpenCloud\LoadBalancerService {
155
  class MissingValueError extends \Exception {}
156
  }
157
+
158
+ /**
159
+ * Exceptions used by the DNS service
160
+ */
161
+ namespace OpenCloud\DNS {
162
+ class AsyncHttpError extends \Exception {}
163
+ class AsyncError extends \Exception {}
164
+ class AsyncTimeoutError extends \Exception {}
165
+ class RecordTypeError extends \Exception {}
166
+ }
sdk/OpenCloud/globals.php CHANGED
@@ -82,6 +82,16 @@ if (!defined('RAXSDK_LBSERVICE_REGION'))
82
  define('RAXSDK_LBSERVICE_REGION', NULL);
83
  if (!defined('RAXSDK_LBSERVICE_URLTYPE'))
84
  define('RAXSDK_LBSERVICE_URLTYPE', 'publicURL');
 
 
 
 
 
 
 
 
 
 
85
  if (!defined('RAXSDK_CONNECTTIMEOUT'))
86
  define('RAXSDK_CONNECTTIMEOUT', 5);
87
  if (!defined('RAXSDK_TIMEOUT'))
@@ -95,15 +105,15 @@ if (!defined('RAXSDK_DEFAULT_IP_VERSION'))
95
  if (!defined('RAXSDK_OVERLIMIT_TIMEOUT'))
96
  define('RAXSDK_OVERLIMIT_TIMEOUT', 300);
97
  /**
98
- * sets default (highly secure) value for CURLOPT_SSL_VERIFYHOST. If you
99
- * are using a self-signed SSL certificate, you can reduce this setting, but
100
- * you do so at your own risk.
101
  */
102
  if (!defined('RAXSDK_SSL_VERIFYHOST'))
103
  define('RAXSDK_SSL_VERIFYHOST', 2);
104
  /**
105
- * sets default (highly secure) value for CURLOPT_SSL_VERIFYPEER. If you
106
- * are using a self-signed SSL certificate, you can reduce this setting, but
107
  * you do so at your own risk.
108
  */
109
  if (!defined('RAXSDK_SSL_VERIFYPEER'))
@@ -118,12 +128,12 @@ if (!defined('RAXSDK_SSL_VERIFYPEER'))
118
  date_default_timezone_set(RAXSDK_TIMEZONE);
119
 
120
  /* these should not be overridden */
121
- define('RAXSDK_VERSION', '1.3');
122
  define('RAXSDK_USER_AGENT', 'php-opencloud/'.RAXSDK_VERSION.' (Rackspace)');
123
  define('RAXSDK_ERROR', 'Error:');
124
  define('RAXSDK_FATAL', 'FATAL ERROR:');
125
  define('RAXSDK_TERMINATED', '*** PROCESSING HALTED ***');
126
- define('RAXSDK_CONTENT_TYPE', 'Content-Type: application/json');
127
  define('RAXSDK_URL_PUBLIC', 'publicURL');
128
  define('RAXSDK_URL_INTERNAL', 'internalURL');
129
  define('RAXSDK_URL_VERSION_INFO', 'versionInfo');
82
  define('RAXSDK_LBSERVICE_REGION', NULL);
83
  if (!defined('RAXSDK_LBSERVICE_URLTYPE'))
84
  define('RAXSDK_LBSERVICE_URLTYPE', 'publicURL');
85
+ if (!defined('RAXSDK_DNS_NAME'))
86
+ define('RAXSDK_DNS_NAME', 'cloudDNS');
87
+ if (!defined('RAXSDK_DNS_REGION'))
88
+ define('RAXSDK_DNS_REGION', '{IGNORE}'); // DNS is regionless
89
+ if (!defined('RAXSDK_DNS_URLTYPE'))
90
+ define('RAXSDK_DNS_URLTYPE', 'publicURL');
91
+ if (!defined('RAXSDK_DNS_ASYNC_TIMEOUT'))
92
+ define('RAXSDK_DNS_ASYNC_TIMEOUT', 60);
93
+ if (!defined('RAXSDK_DNS_ASYNC_INTERVAL'))
94
+ define('RAXSDK_DNS_ASYNC_INTERVAL', 1);
95
  if (!defined('RAXSDK_CONNECTTIMEOUT'))
96
  define('RAXSDK_CONNECTTIMEOUT', 5);
97
  if (!defined('RAXSDK_TIMEOUT'))
105
  if (!defined('RAXSDK_OVERLIMIT_TIMEOUT'))
106
  define('RAXSDK_OVERLIMIT_TIMEOUT', 300);
107
  /**
108
+ * sets default (highly secure) value for CURLOPT_SSL_VERIFYHOST. If you
109
+ * are using a self-signed SSL certificate, you can reduce this setting, but
110
+ * you do so at your own risk.
111
  */
112
  if (!defined('RAXSDK_SSL_VERIFYHOST'))
113
  define('RAXSDK_SSL_VERIFYHOST', 2);
114
  /**
115
+ * sets default (highly secure) value for CURLOPT_SSL_VERIFYPEER. If you
116
+ * are using a self-signed SSL certificate, you can reduce this setting, but
117
  * you do so at your own risk.
118
  */
119
  if (!defined('RAXSDK_SSL_VERIFYPEER'))
128
  date_default_timezone_set(RAXSDK_TIMEZONE);
129
 
130
  /* these should not be overridden */
131
+ define('RAXSDK_VERSION', '1.4');
132
  define('RAXSDK_USER_AGENT', 'php-opencloud/'.RAXSDK_VERSION.' (Rackspace)');
133
  define('RAXSDK_ERROR', 'Error:');
134
  define('RAXSDK_FATAL', 'FATAL ERROR:');
135
  define('RAXSDK_TERMINATED', '*** PROCESSING HALTED ***');
136
+ define('RAXSDK_CONTENT_TYPE_JSON', 'application/json');
137
  define('RAXSDK_URL_PUBLIC', 'publicURL');
138
  define('RAXSDK_URL_INTERNAL', 'internalURL');
139
  define('RAXSDK_URL_VERSION_INFO', 'versionInfo');
sdk/OpenCloud/http.php CHANGED
@@ -83,6 +83,11 @@ class CurlRequest implements HTTPRequest {
83
  $this->setOption(CURLOPT_CAINFO, RAXSDK_CACERTPEM);
84
  }
85
 
 
 
 
 
 
86
  // follow redirects
87
  $this->SetOption(CURLOPT_FOLLOWLOCATION, TRUE);
88
 
@@ -294,7 +299,7 @@ class CurlRequest implements HTTPRequest {
294
  * @api
295
  * @author Glen Campbell <glen.campbell@rackspace.com>
296
  */
297
- class HttpResponse {
298
 
299
  private
300
  $errno,
83
  $this->setOption(CURLOPT_CAINFO, RAXSDK_CACERTPEM);
84
  }
85
 
86
+ // curl code [18]
87
+ // message [transfer closed with x bytes remaining to read]
88
+ if ($method === 'HEAD')
89
+ $this->SetOption(CURLOPT_NOBODY, TRUE);
90
+
91
  // follow redirects
92
  $this->SetOption(CURLOPT_FOLLOWLOCATION, TRUE);
93
 
299
  * @api
300
  * @author Glen Campbell <glen.campbell@rackspace.com>
301
  */
302
+ class HttpResponse extends \OpenCloud\Base {
303
 
304
  private
305
  $errno,
sdk/OpenCloud/lbresources.php CHANGED
@@ -87,7 +87,7 @@ abstract class SubResource extends \OpenCloud\PersistentObject {
87
  }
88
  return $obj;
89
  }
90
-
91
  /**
92
  * returns the JSON for the update (same as create)
93
  *
@@ -97,7 +97,7 @@ abstract class SubResource extends \OpenCloud\PersistentObject {
97
  protected function UpdateJson($params = array()) {
98
  return $this->CreateJson();
99
  }
100
-
101
  /**
102
  * returns the Parent object (usually a LoadBalancer, but sometimes another
103
  * SubResource)
@@ -107,7 +107,7 @@ abstract class SubResource extends \OpenCloud\PersistentObject {
107
  public function Parent() {
108
  return $this->parent;
109
  }
110
-
111
  /**
112
  * returns a (default) name of the object
113
  *
@@ -282,7 +282,7 @@ class Node extends \OpenCloud\PersistentObject {
282
  /**
283
  * a single node event, usually called as part of a Collection
284
  *
285
- * This is a read-only subresource.
286
  */
287
  class NodeEvent extends ReadonlySubResource {
288
  public
@@ -349,17 +349,6 @@ class VirtualIp extends SubResource {
349
  public function Update($params=array()) { $this->NoUpdate(); }
350
  }
351
 
352
- /**
353
- * used to get a list of billable load balancers for a specific date range
354
- */
355
- class BillableLoadBalancer extends LoadBalancer {
356
- protected static
357
- $url_resource = 'loadbalancers/billable';
358
- public function Create($params=array()) { $this->NoCreate(); }
359
- public function Update($params=array()) { $this->NoUpdate(); }
360
- public function Delete() { $this->NoDelete(); }
361
- } // end BillableLoadBalancer
362
-
363
  /**
364
  * used to get usage data for a load balancer
365
  */
87
  }
88
  return $obj;
89
  }
90
+
91
  /**
92
  * returns the JSON for the update (same as create)
93
  *
97
  protected function UpdateJson($params = array()) {
98
  return $this->CreateJson();
99
  }
100
+
101
  /**
102
  * returns the Parent object (usually a LoadBalancer, but sometimes another
103
  * SubResource)
107
  public function Parent() {
108
  return $this->parent;
109
  }
110
+
111
  /**
112
  * returns a (default) name of the object
113
  *
282
  /**
283
  * a single node event, usually called as part of a Collection
284
  *
285
+ * This is a read-only subresource.
286
  */
287
  class NodeEvent extends ReadonlySubResource {
288
  public
349
  public function Update($params=array()) { $this->NoUpdate(); }
350
  }
351
 
 
 
 
 
 
 
 
 
 
 
 
352
  /**
353
  * used to get usage data for a load balancer
354
  */
sdk/OpenCloud/loadbalancer.php CHANGED
@@ -19,6 +19,8 @@ require_once(__DIR__.'/lbresources.php'); // child resources
19
  /**
20
  * The LoadBalancer class represents a single load balancer
21
  *
 
 
22
  * @api
23
  * @author Glen Campbell <glen.campbell@rackspace.com>
24
  */
@@ -134,7 +136,7 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
134
  if (count($this->nodes) < 1)
135
  throw new MissingValueError(
136
  _('Cannot add nodes; no nodes are defined'));
137
-
138
  // iterate through all the nodes
139
  foreach($this->nodes as $node)
140
  $resp = $node->Create();
@@ -183,8 +185,8 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
183
  }
184
  }
185
 
186
- /**
187
- * If the load balancer exists, we want to add it immediately.
188
  * If not, we add it to the virtualIps list and add it when the load
189
  * balancer is created.
190
  */
@@ -198,7 +200,7 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
198
  }
199
  else // queue it
200
  $this->virtualIps[] = $obj;
201
-
202
  // done
203
  return TRUE;
204
  }
@@ -209,7 +211,7 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
209
  * each managed by independent HTTP requests, such as the .../errorpage
210
  * and the .../sessionpersistence objects.
211
  */
212
-
213
  /**
214
  * returns a Node object
215
  */
@@ -224,14 +226,14 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
224
  return $this->Parent()->Collection(
225
  '\OpenCloud\LoadBalancerService\Node', NULL, $this);
226
  }
227
-
228
  /**
229
  * returns a NodeEvent object
230
  */
231
  public function NodeEvent() {
232
  return new NodeEvent($this);
233
  }
234
-
235
  /**
236
  * returns a Collection of NodeEvents
237
  */
@@ -319,13 +321,13 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
319
  public function ContentCaching() {
320
  return new ContentCaching($this);
321
  }
322
-
323
  /**
324
  */
325
  public function SSLTermination() {
326
  return new SSLTermination($this);
327
  }
328
-
329
  /**
330
  */
331
  public function Metadata($data=NULL) {
@@ -371,3 +373,15 @@ class LoadBalancer extends \OpenCloud\PersistentObject {
371
  }
372
 
373
  } // end LoadBalancer
 
 
 
 
 
 
 
 
 
 
 
 
19
  /**
20
  * The LoadBalancer class represents a single load balancer
21
  *
22
+ * NOTE: see BillableLoadBalancer, a subclass, defined at the end of this file.
23
+ *
24
  * @api
25
  * @author Glen Campbell <glen.campbell@rackspace.com>
26
  */
136
  if (count($this->nodes) < 1)
137
  throw new MissingValueError(
138
  _('Cannot add nodes; no nodes are defined'));
139
+
140
  // iterate through all the nodes
141
  foreach($this->nodes as $node)
142
  $resp = $node->Create();
185
  }
186
  }
187
 
188
+ /**
189
+ * If the load balancer exists, we want to add it immediately.
190
  * If not, we add it to the virtualIps list and add it when the load
191
  * balancer is created.
192
  */
200
  }
201
  else // queue it
202
  $this->virtualIps[] = $obj;
203
+
204
  // done
205
  return TRUE;
206
  }
211
  * each managed by independent HTTP requests, such as the .../errorpage
212
  * and the .../sessionpersistence objects.
213
  */
214
+
215
  /**
216
  * returns a Node object
217
  */
226
  return $this->Parent()->Collection(
227
  '\OpenCloud\LoadBalancerService\Node', NULL, $this);
228
  }
229
+
230
  /**
231
  * returns a NodeEvent object
232
  */
233
  public function NodeEvent() {
234
  return new NodeEvent($this);
235
  }
236
+
237
  /**
238
  * returns a Collection of NodeEvents
239
  */
321
  public function ContentCaching() {
322
  return new ContentCaching($this);
323
  }
324
+
325
  /**
326
  */
327
  public function SSLTermination() {
328
  return new SSLTermination($this);
329
  }
330
+
331
  /**
332
  */
333
  public function Metadata($data=NULL) {
373
  }
374
 
375
  } // end LoadBalancer
376
+
377
+ /**
378
+ * used to get a list of billable load balancers for a specific date range
379
+ */
380
+ class BillableLoadBalancer extends LoadBalancer {
381
+ protected static
382
+ $url_resource = 'loadbalancers/billable';
383
+ public function Create($params=array()) { $this->NoCreate(); }
384
+ public function Update($params=array()) { $this->NoUpdate(); }
385
+ public function Delete() { $this->NoDelete(); }
386
+ } // end BillableLoadBalancer
387
+
sdk/OpenCloud/nova.php CHANGED
@@ -26,7 +26,6 @@ require_once(__DIR__.'/collection.php');
26
  */
27
  abstract class Nova extends Service {
28
  private
29
- $_namespaces=array(),
30
  $_url;
31
 
32
  /**
@@ -130,19 +129,10 @@ abstract class Nova extends Service {
130
  * @return \Rackspace\HttpResult object
131
  */
132
  public function Request($url, $method='GET', $headers=array(), $body=NULL) {
133
- $headers['Content-Type'] = 'application/json';
134
  return parent::Request($url, $method, $headers, $body);
135
  }
136
 
137
- /**
138
- * Returns a list of supported namespaces
139
- *
140
- * @return array
141
- */
142
- public function namespaces() {
143
- return $this->_namespaces;
144
- }
145
-
146
  /********** PRIVATE METHODS **********/
147
 
148
  /**
26
  */
27
  abstract class Nova extends Service {
28
  private
 
29
  $_url;
30
 
31
  /**
129
  * @return \Rackspace\HttpResult object
130
  */
131
  public function Request($url, $method='GET', $headers=array(), $body=NULL) {
132
+ $headers['Content-Type'] = RAXSDK_CONTENT_TYPE_JSON;
133
  return parent::Request($url, $method, $headers, $body);
134
  }
135
 
 
 
 
 
 
 
 
 
 
136
  /********** PRIVATE METHODS **********/
137
 
138
  /**
sdk/OpenCloud/objectstore.php CHANGED
@@ -18,7 +18,8 @@ require_once(__DIR__.'/container.php');
18
  define('SWIFT_MAX_OBJECT_SIZE', 5*1024*1024*1024+1);
19
 
20
  /**
21
- * A base class for common code shared between the ObjectStore and ObjectStoreCDN
 
22
  * objects
23
  *
24
  * @author Glen Campbell <glen.campbell@rackspace.com>
@@ -143,6 +144,24 @@ class ObjectStore extends ObjectStoreBase {
143
  }
144
  } // function __construct()
145
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  /**
147
  * returns the CDN object
148
  */
18
  define('SWIFT_MAX_OBJECT_SIZE', 5*1024*1024*1024+1);
19
 
20
  /**
21
+ * A base class for common code shared between the ObjectStore and
22
+ * ObjectStoreCDN
23
  * objects
24
  *
25
  * @author Glen Campbell <glen.campbell@rackspace.com>
144
  }
145
  } // function __construct()
146
 
147
+ /**
148
+ * sets the shared secret value for the TEMP_URL
149
+ *
150
+ * @param string $secret the shared secret
151
+ * @return HttpResponse
152
+ */
153
+ public function SetTempUrlSecret($secret) {
154
+ $resp = $this->Request($this->Url(), 'POST',
155
+ array('X-Account-Meta-Temp-URL-Key' => $secret));
156
+ if ($resp->HttpStatus() > 204)
157
+ throw new \OpenCloud\HttpError(sprintf(
158
+ _('Error in request, status [%d] for URL [%s] [%s]'),
159
+ $resp->HttpStatus(),
160
+ $this->Url(),
161
+ $resp->HttpBody()));
162
+ return $resp;
163
+ }
164
+
165
  /**
166
  * returns the CDN object
167
  */
sdk/OpenCloud/openstack.php CHANGED
@@ -106,6 +106,11 @@ class OpenStack extends \OpenCloud\Base {
106
  'name' => RAXSDK_LBSERVICE_NAME,
107
  'region' => RAXSDK_LBSERVICE_REGION,
108
  'urltype' => RAXSDK_LBSERVICE_URLTYPE
 
 
 
 
 
109
  )
110
  ),
111
  $connect_timeout=RAXSDK_CONNECTTIMEOUT,
@@ -264,7 +269,8 @@ class OpenStack extends \OpenCloud\Base {
264
 
265
  if (isset($this->secret['tenantName']))
266
  {
267
- $credentials['auth']['tenantName'] = $this->secret['tenantName'];
 
268
  }
269
 
270
  return json_encode($credentials);
106
  'name' => RAXSDK_LBSERVICE_NAME,
107
  'region' => RAXSDK_LBSERVICE_REGION,
108
  'urltype' => RAXSDK_LBSERVICE_URLTYPE
109
+ ),
110
+ 'DNS' => array(
111
+ 'name' => RAXSDK_DNS_NAME,
112
+ 'region' => RAXSDK_DNS_REGION,
113
+ 'urltype' => RAXSDK_DNS_URLTYPE
114
  )
115
  ),
116
  $connect_timeout=RAXSDK_CONNECTTIMEOUT,
269
 
270
  if (isset($this->secret['tenantName']))
271
  {
272
+ $credentials['auth']['tenantName'] =
273
+ $this->secret['tenantName'];
274
  }
275
 
276
  return json_encode($credentials);
sdk/OpenCloud/persistentobject.php CHANGED
@@ -95,9 +95,8 @@ abstract class PersistentObject extends Base {
95
  }
96
  elseif (isset($info))
97
  throw new InvalidArgumentError(sprintf(
98
- _('Argument for [%s] must be string or object, [%s] used'),
99
- get_class(),
100
- get_class($info)));
101
  }
102
 
103
  /**
@@ -287,7 +286,8 @@ abstract class PersistentObject extends Base {
287
  *
288
  */
289
  public function WaitFor($terminal='ACTIVE',
290
- $timeout=RAXSDK_SERVER_MAXTIMEOUT, $callback=NULL) {
 
291
  // find the primary key field
292
  $pk = $this->PrimaryKeyField();
293
 
@@ -301,7 +301,7 @@ abstract class PersistentObject extends Base {
301
  if ($this->status == 'ERROR') return;
302
  if ($this->status == $terminal) return;
303
  if (time()-$starttime > $timeout) return;
304
- sleep(RAXSDK_POLL_INTERVAL);
305
  }
306
  }
307
 
95
  }
96
  elseif (isset($info))
97
  throw new InvalidArgumentError(sprintf(
98
+ _('Argument for [%s] must be string or object'),
99
+ get_class()));
 
100
  }
101
 
102
  /**
286
  *
287
  */
288
  public function WaitFor($terminal='ACTIVE',
289
+ $timeout=RAXSDK_SERVER_MAXTIMEOUT, $callback=NULL,
290
+ $sleep=RAXSDK_POLL_INTERVAL) {
291
  // find the primary key field
292
  $pk = $this->PrimaryKeyField();
293
 
301
  if ($this->status == 'ERROR') return;
302
  if ($this->status == $terminal) return;
303
  if (time()-$starttime > $timeout) return;
304
+ sleep($sleep);
305
  }
306
  }
307
 
sdk/OpenCloud/ptrrecord.php ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Defines a DNS PTR record
4
+ *
5
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
6
+ * See COPYING for licensing information
7
+ *
8
+ * @package phpOpenCloud
9
+ * @version 1.0
10
+ * @author Glen Campbell <glen.campbell@rackspace.com>
11
+ */
12
+
13
+ namespace OpenCloud\DNS;
14
+
15
+ require_once(__DIR__.'/record.php');
16
+
17
+ /**
18
+ * PTR records are used for reverse DNS
19
+ *
20
+ * The PtrRecord object is nearly identical with the Record object. However,
21
+ * the PtrRecord is a child of the service, and not a child of a Domain.
22
+ *
23
+ */
24
+ class PtrRecord extends Record {
25
+
26
+ protected static
27
+ $json_name = FALSE,
28
+ $json_collection_name = 'records',
29
+ $url_resource = 'rdns';
30
+
31
+ private
32
+ $link_rel,
33
+ $link_href;
34
+
35
+ /**
36
+ * constructur ensures that the record type is PTR
37
+ */
38
+ public function __construct($parent, $info=NULL) {
39
+ $this->type = 'PTR';
40
+ parent::__construct($parent, $info);
41
+ if ($this->type != 'PTR')
42
+ throw new RecordTypeError(sprintf(
43
+ _('Invalid record type [%s], must be PTR'), $this->type));
44
+ }
45
+
46
+ /**
47
+ * specialized DNS PTR URL requires server service name and href
48
+ */
49
+ public function Url($subresource=NULL, $params=array()) {
50
+ if (isset($subresource))
51
+ $url = $this->Parent()->Url($subresource, $params);
52
+ else
53
+ $url = $this->Parent()->Url(self::$url_resource, $params);
54
+ return $url;
55
+ }
56
+
57
+ /**
58
+ * DNS PTR Create() method requires a server
59
+ */
60
+ public function Create(\OpenCloud\Compute\Server $srv, $param=array()) {
61
+ $this->link_rel = $srv->Service()->Name();
62
+ $this->link_href = $srv->Url();
63
+ return parent::Create($param);
64
+ }
65
+
66
+ /**
67
+ * DNS PTR Update() method requires a server
68
+ */
69
+ public function Update(\OpenCloud\Compute\Server $srv, $param=array()) {
70
+ $this->link_rel = $srv->Service()->Name();
71
+ $this->link_href = $srv->Url();
72
+ return parent::Update($param);
73
+ }
74
+
75
+ /**
76
+ * DNS PTR Delete() method requires a server
77
+ *
78
+ * Note that delete will remove ALL PTR records associated with the device
79
+ * unless you pass in the parameter ip={ip address}
80
+ *
81
+ */
82
+ public function Delete(\OpenCloud\Compute\Server $srv) {
83
+ $this->link_rel = $srv->Service()->Name();
84
+ $this->link_href = $srv->Url();
85
+ $url = $this->Url('rdns/'.$this->link_rel,
86
+ array('href'=>$this->link_href));
87
+ if (isset($this->data))
88
+ $url .= '&ip='.$this->data;
89
+
90
+ // perform the request
91
+ $resp = $this->Service()->Request($url, 'DELETE');
92
+
93
+ // return the AsyncResponse object
94
+ return new AsyncResponse($this->Service(), $resp->HttpBody());
95
+ }
96
+
97
+ /* ---------- PROTECTED METHODS ---------- */
98
+
99
+ /**
100
+ * Specialized JSON for DNS PTR creates and updates
101
+ */
102
+ protected function CreateJson() {
103
+ $obj = new \stdClass;
104
+ $obj->recordsList = parent::CreateJson();
105
+
106
+ // add links from server
107
+ $obj->link = new \stdClass;
108
+ $obj->link->href = $this->link_href;
109
+ $obj->link->rel = $this->link_rel;
110
+ return $obj;
111
+ }
112
+
113
+ /**
114
+ * The Update() JSON requires a record ID
115
+ */
116
+ protected function UpdateJson() {
117
+ $obj = $this->CreateJson();
118
+ $obj->recordsList->records[0]->id = $this->id;
119
+ return $obj;
120
+ }
121
+
122
+ } // class PtrRecord
sdk/OpenCloud/rackspace.php CHANGED
@@ -16,6 +16,7 @@ namespace OpenCloud;
16
  require_once(__DIR__.'/openstack.php');
17
  require_once(__DIR__.'/dbservice.php');
18
  require_once(__DIR__.'/lbservice.php');
 
19
 
20
  /**
21
  * Rackspace extends the OpenStack class with support for Rackspace's
@@ -92,5 +93,15 @@ ENDCRED;
92
  public function LoadBalancerService($name=NULL,$region=NULL,$urltype=NULL) {
93
  return $this->Service('LoadBalancerService', $name, $region, $urltype);
94
  }
 
 
 
 
 
 
 
 
 
 
95
 
96
  } // end class Rackspace
16
  require_once(__DIR__.'/openstack.php');
17
  require_once(__DIR__.'/dbservice.php');
18
  require_once(__DIR__.'/lbservice.php');
19
+ require_once(__DIR__.'/dns.php');
20
 
21
  /**
22
  * Rackspace extends the OpenStack class with support for Rackspace's
93
  public function LoadBalancerService($name=NULL,$region=NULL,$urltype=NULL) {
94
  return $this->Service('LoadBalancerService', $name, $region, $urltype);
95
  }
96
+
97
+ /**
98
+ * creates a new DNS service object
99
+ *
100
+ * This is a factory method that is currently Rackspace-only
101
+ * (not available via the OpenStack class)
102
+ */
103
+ public function DNS($name=NULL, $region=NULL, $urltype=NULL) {
104
+ return $this->Service('DNS', $name, $region, $urltype);
105
+ }
106
 
107
  } // end class Rackspace
sdk/OpenCloud/record.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Defines a DNS record
4
+ *
5
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
6
+ * See COPYING for licensing information
7
+ *
8
+ * @package phpOpenCloud
9
+ * @version 1.0
10
+ * @author Glen Campbell <glen.campbell@rackspace.com>
11
+ */
12
+
13
+ namespace OpenCloud\DNS;
14
+
15
+ require_once(__DIR__.'/dnsobject.php');
16
+
17
+ /**
18
+ * The Record class represents a single domain record
19
+ *
20
+ * This is also used for PTR records.
21
+ *
22
+ * @api
23
+ * @author Glen Campbell <glen.campbell@rackspace.com>
24
+ */
25
+ class Record extends DnsObject {
26
+
27
+ public
28
+ $ttl,
29
+ $updated,
30
+ $created,
31
+ $name,
32
+ $id,
33
+ $type,
34
+ $data,
35
+ $priority,
36
+ $comment;
37
+
38
+ protected static
39
+ $json_name = FALSE,
40
+ $json_collection_name = 'records',
41
+ $url_resource = 'records';
42
+
43
+ protected
44
+ $_parent,
45
+ $_update_keys = array('name','ttl','data','priority','comment'),
46
+ $_create_keys = array('type','name','ttl','data','priority','comment');
47
+
48
+ /**
49
+ * create a new record object
50
+ *
51
+ * @param mixed $parent either the domain object or the DNS object (for PTR)
52
+ * @param mixed $info ID or array/object of data for the object
53
+ * @return void
54
+ */
55
+ public function __construct($parent, $info=NULL) {
56
+ $this->_parent = $parent;
57
+ if (get_class($parent) == 'OpenCloud\DNS')
58
+ parent::__construct($parent, $info);
59
+ else
60
+ parent::__construct($parent->Service(), $info);
61
+ }
62
+
63
+ /**
64
+ * returns the parent domain
65
+ *
66
+ * @return Domain
67
+ */
68
+ public function Parent() {
69
+ return $this->_parent;
70
+ }
71
+
72
+ } // class Record
73
+
sdk/OpenCloud/service.php CHANGED
@@ -25,6 +25,10 @@ require_once(__DIR__.'/base.php');
25
  * @author Glen Campbell <glen.campbell@rackspace.com>
26
  */
27
  abstract class Service extends Base {
 
 
 
 
28
  private
29
  $conn,
30
  $service_type,
@@ -54,7 +58,6 @@ abstract class Service extends Base {
54
  $this->service_type = $type;
55
  $this->service_name = $name;
56
  $this->service_region = $region;
57
- $catalog = $conn->serviceCatalog();
58
  $this->service_url = $this->get_endpoint(
59
  $type, $name, $region, $urltype);
60
  } // public function __construct()
@@ -142,7 +145,7 @@ abstract class Service extends Base {
142
  // determine the URL
143
  if (!$url)
144
  $url = $parent->Url($class::ResourceName());
145
-
146
  // add query string parameters
147
  if (count($parm))
148
  $url .= '?' . $this->MakeQueryString($parm);
@@ -174,7 +177,7 @@ abstract class Service extends Base {
174
  $obj = json_decode($response->HttpBody());
175
  if ($this->CheckJsonError())
176
  return FALSE;
177
-
178
  // see if there is a "next" link
179
  if (isset($obj->links)) {
180
  if (is_array($obj->links)) {
@@ -205,18 +208,18 @@ abstract class Service extends Base {
205
  }
206
  else
207
  $coll_obj = new Collection($parent, $class, array());
208
-
209
  // if there's a $next_page_url, then we need to establish a
210
  // callback method
211
  if (isset($next_page_url)) {
212
  $coll_obj->SetNextPageCallback(
213
- array($this, 'Collection'),
214
  $next_page_url);
215
  }
216
-
217
  return $coll_obj;
218
  }
219
-
220
  /**
221
  * returns the Region associated with the service
222
  *
@@ -227,6 +230,31 @@ abstract class Service extends Base {
227
  return $this->service_region;
228
  }
229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  /********** PRIVATE METHODS **********/
231
 
232
  /**
@@ -256,8 +284,14 @@ abstract class Service extends Base {
256
  (!strcasecmp($service->name, $name))) {
257
  // found the service, now we need to find the region
258
  foreach($service->endpoints as $endpoint) {
 
 
 
 
 
 
259
  // compare the regions
260
- if ((!strcasecmp($endpoint->region, $region)) &&
261
  isset($endpoint->$urltype)) {
262
  // now we have a match! Yay!
263
  ++$found;
25
  * @author Glen Campbell <glen.campbell@rackspace.com>
26
  */
27
  abstract class Service extends Base {
28
+
29
+ protected
30
+ $_namespaces=array();
31
+
32
  private
33
  $conn,
34
  $service_type,
58
  $this->service_type = $type;
59
  $this->service_name = $name;
60
  $this->service_region = $region;
 
61
  $this->service_url = $this->get_endpoint(
62
  $type, $name, $region, $urltype);
63
  } // public function __construct()
145
  // determine the URL
146
  if (!$url)
147
  $url = $parent->Url($class::ResourceName());
148
+
149
  // add query string parameters
150
  if (count($parm))
151
  $url .= '?' . $this->MakeQueryString($parm);
177
  $obj = json_decode($response->HttpBody());
178
  if ($this->CheckJsonError())
179
  return FALSE;
180
+
181
  // see if there is a "next" link
182
  if (isset($obj->links)) {
183
  if (is_array($obj->links)) {
208
  }
209
  else
210
  $coll_obj = new Collection($parent, $class, array());
211
+
212
  // if there's a $next_page_url, then we need to establish a
213
  // callback method
214
  if (isset($next_page_url)) {
215
  $coll_obj->SetNextPageCallback(
216
+ array($this, 'Collection'),
217
  $next_page_url);
218
  }
219
+
220
  return $coll_obj;
221
  }
222
+
223
  /**
224
  * returns the Region associated with the service
225
  *
230
  return $this->service_region;
231
  }
232
 
233
+ /**
234
+ * returns the serviceName associated with the service
235
+ *
236
+ * This is used by DNS for PTR record lookups
237
+ *
238
+ * @api
239
+ * @return string
240
+ */
241
+ public function Name() {
242
+ return $this->service_name;
243
+ }
244
+
245
+ /**
246
+ * Returns a list of supported namespaces
247
+ *
248
+ * @return array
249
+ */
250
+ public function namespaces() {
251
+ if (!isset($this->_namespaces))
252
+ return array();
253
+ if (is_array($this->_namespaces))
254
+ return $this->_namespaces;
255
+ return array();
256
+ }
257
+
258
  /********** PRIVATE METHODS **********/
259
 
260
  /**
284
  (!strcasecmp($service->name, $name))) {
285
  // found the service, now we need to find the region
286
  foreach($service->endpoints as $endpoint) {
287
+ // regionless service
288
+ if (!isset($endpoint->region) &&
289
+ isset($endpoint->$urltype)) {
290
+ ++$found;
291
+ return $endpoint->$urltype;
292
+ }
293
  // compare the regions
294
+ elseif ((!strcasecmp($endpoint->region, $region)) &&
295
  isset($endpoint->$urltype)) {
296
  // now we have a match! Yay!
297
  ++$found;