BackWPup – WordPress Backup Plugin - Version 1.7.0

Version Description

  • Improved Dropbox referer handling
  • Sycurity fix (thanks to Phil Taylor - Sense of Security)
  • Added SugarSync support
  • general improvements
  • bug fixes
Download this release

Release Info

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

Code changes from version 1.6.2 to 1.7.0

app/backwpup_dojob.php CHANGED
@@ -10,25 +10,26 @@ if ( !defined('ABSPATH') )
10
  class backwpup_dojob {
11
 
12
  private $jobid=0;
13
- private $filelist=array();
14
  private $tempfilelist=array();
15
- private $todo=array();
16
  private $allfilesize=0;
17
- private $backupfile='';
18
- private $backupfileformat='.zip';
19
- private $backupdir='';
20
  private $lastbackupdownloadurl='';
21
  public $logdir='';
22
  public $logfile='';
23
  private $tempdir='';
24
- private $cfg=array();
25
- private $job=array();
26
 
27
  public function __construct($jobid) {
28
  global $wpdb;
29
  @ini_get('safe_mode','Off'); //disable safe mode
30
  @ini_set('ignore_user_abort','Off'); //Set PHP ini setting
31
  ignore_user_abort(true); //user can't abort script (close windows or so.)
 
32
  $this->jobid=$jobid; //set job id
33
  $this->cfg=get_option('backwpup'); //load config
34
  $jobs=get_option('backwpup_jobs'); //load jobdata
@@ -92,7 +93,6 @@ class backwpup_dojob {
92
  $this->job_end($jobs[$this->jobid]['logfile']);
93
  } else {
94
  trigger_error(sprintf(__('Job %1$s already running!!!','backwpup'),$jobs[$this->jobid]['name']),E_USER_ERROR);
95
- $this->job_end();
96
  }
97
  }
98
  //Set job start settings
@@ -134,112 +134,6 @@ class backwpup_dojob {
134
  ini_set('memory_limit', apply_filters( 'admin_memory_limit', '256M' )); //Wordpress default
135
  trigger_error(sprintf(__('Memory limit set to %1$s ,because can not use PHP: memory_get_usage() function to dynamically increase the Memory!','backwpup'),ini_get('memory_limit')),E_USER_WARNING);
136
  }
137
- //run job parts
138
- foreach($this->todo as $key => $value) {
139
- switch ($value) {
140
- case 'DB':
141
- $this->dump_db();
142
- break;
143
- case 'WPEXP':
144
- $this->export_wp();
145
- break;
146
- case 'FILE':
147
- $this->file_list();
148
- break;
149
- }
150
- }
151
-
152
- if (isset($this->filelist[0][79001])) { // Make backup file
153
- if ($this->backupfileformat==".zip")
154
- $this->zip_files();
155
- elseif ($this->backupfileformat==".tar.gz" or $this->backupfileformat==".tar.bz2" or $this->backupfileformat==".tar")
156
- $this->tar_pack_files();
157
- }
158
-
159
- if (is_file($this->backupdir.$this->backupfile)) { // Put backup file to destination
160
- $dests=explode(',',strtoupper(BACKWPUP_DESTS));
161
- if (!empty($this->job['mailaddress'])) {
162
- $this->destination_mail();
163
- }
164
- if (in_array('FTP',$dests) and !empty($this->job['ftphost']) and !empty($this->job['ftpuser']) and !empty($this->job['ftppass'])) {
165
- if (function_exists('ftp_connect'))
166
- $this->destination_ftp();
167
- else
168
- trigger_error(__('FTP extension needed for FTP!','backwpup'),E_USER_ERROR);
169
- }
170
- if (in_array('DROPBOX',$dests) and !empty($this->job['dropetoken']) and !empty($this->job['dropesecret'])) {
171
- if (function_exists('curl_exec') and function_exists('json_decode'))
172
- $this->destination_dropbox();
173
- else
174
- trigger_error(__('Curl and Json extensions needed for DropBox!','backwpup'),E_USER_ERROR);
175
- }
176
- if (in_array('SUGARSYNC',$dests) and !empty($this->job['sugaruser']) and !empty($this->job['sugarpass'])) {
177
- if (function_exists('curl_exec') )
178
- $this->destination_sugarsync();
179
- else
180
- trigger_error(__('Curl and Json extensions needed for DropBox!','backwpup'),E_USER_ERROR);
181
- }
182
- if (in_array('S3',$dests) and !empty($this->job['awsAccessKey']) and !empty($this->job['awsSecretKey']) and !empty($this->job['awsBucket'])) {
183
- if (function_exists('curl_exec'))
184
- $this->destination_s3();
185
- else
186
- trigger_error(__('Curl extension needed for Amazon S3!','backwpup'),E_USER_ERROR);
187
- }
188
- if (in_array('RSC',$dests) and !empty($this->job['rscUsername']) and !empty($this->job['rscAPIKey']) and !empty($this->job['rscContainer'])) {
189
- if (function_exists('curl_exec'))
190
- $this->destination_rsc();
191
- else
192
- trigger_error(__('Curl extension needed for RackSpaceCloud!','backwpup'),E_USER_ERROR);
193
- }
194
- if (in_array('MSAZURE',$dests) and !empty($this->job['msazureHost']) and !empty($this->job['msazureAccName']) and !empty($this->job['msazureKey']) and !empty($this->job['msazureContainer'])) {
195
- if (function_exists('curl_exec'))
196
- $this->destination_msazure();
197
- else
198
- trigger_error(__('Curl extension needed for Microsoft Azure!','backwpup'),E_USER_ERROR);
199
- }
200
- if (!empty($this->job['backupdir'])) {
201
- $this->destination_dir();
202
- }
203
- }
204
-
205
- foreach($this->todo as $key => $value) {
206
- switch ($value) {
207
- case 'CHECK':
208
- $this->check_db();
209
- break;
210
- case 'OPTIMIZE':
211
- $this->optimize_db();
212
- break;
213
- }
214
- }
215
-
216
- //delete old logs
217
- if (!empty($this->cfg['maxlogs'])) {
218
- if ( $dir = opendir($this->logdir) ) { //make file list
219
- while (($file = readdir($dir)) !== false ) {
220
- if ('backwpup_log_' == substr($file,0,strlen('backwpup_log_')) and (".html" == substr($file,-5) or ".html.gz" == substr($file,-8)))
221
- $logfilelist[]=$file;
222
- }
223
- closedir( $dir );
224
- }
225
- if (sizeof($logfilelist)>0) {
226
- rsort($logfilelist);
227
- $numdeltefiles=0;
228
- for ($i=$this->cfg['maxlogs'];$i<sizeof($logfilelist);$i++) {
229
- unlink($this->logdir.$logfilelist[$i]);
230
- $numdeltefiles++;
231
- }
232
- if ($numdeltefiles>0)
233
- trigger_error($numdeltefiles.' '.__('old Log files deleted!!!','backwpup'),E_USER_NOTICE);
234
- }
235
- }
236
-
237
- if ($filesize=filesize($this->backupdir.$this->backupfile))
238
- trigger_error(sprintf(__('Backup Archive File size is %1s','backwpup'),backwpup_formatBytes($filesize)),E_USER_NOTICE);
239
-
240
- trigger_error(sprintf(__('Job done in %1s sec.','backwpup'),current_time('timestamp')-$this->job['starttime']),E_USER_NOTICE);
241
-
242
- $this->job_end();
243
  }
244
 
245
  //function for PHP error handling
@@ -321,9 +215,7 @@ class backwpup_dojob {
321
  if ($args[0]==E_ERROR or $args[0]==E_CORE_ERROR or $args[0]==E_COMPILE_ERROR) {//Die on fatal php errors.
322
  $this->send_log_mail();
323
  die();
324
- }
325
- //300 is most webserver time limit. 0= max time! Give script 5 min. more to work.
326
- @set_time_limit(300);
327
  //true for no more php error hadling.
328
  return true;
329
  } else {
@@ -441,7 +333,7 @@ class backwpup_dojob {
441
  }
442
  }
443
 
444
- private function check_db() {
445
  global $wpdb;
446
 
447
  trigger_error(__('Run Database check...','backwpup'),E_USER_NOTICE);
@@ -548,7 +440,7 @@ class backwpup_dojob {
548
  fwrite($file, "/*!40000 ALTER TABLE ".$table." ENABLE KEYS */;\n");
549
  }
550
 
551
- private function dump_db() {
552
  global $wpdb;
553
  trigger_error(__('Run Database Dump to file...','backwpup'),E_USER_NOTICE);
554
  //Set maintenance
@@ -634,12 +526,12 @@ class backwpup_dojob {
634
  $this->maintenance_mode(false);
635
  }
636
 
637
- private function export_wp() {
638
  $this->need_free_memory(1048576); //1MB free memory
639
  if (function_exists('curl_exec')) {
640
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
641
  $ch = curl_init();
642
- curl_setopt($ch, CURLOPT_URL, plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.substr(md5(md5(SECURE_AUTH_KEY)),10,10));
643
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
644
  curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
645
  curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
@@ -655,7 +547,7 @@ class backwpup_dojob {
655
  curl_close($ch);
656
  } elseif (ini_get('allow_url_fopen')==true or ini_get('allow_url_fopen')==1 or strtolower(ini_get('allow_url_fopen'))=="on") {
657
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
658
- if (copy(plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.substr(md5(md5(SECURE_AUTH_KEY)),10,10),$this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml')) {
659
  trigger_error(__('Export to XML done!','backwpup'),E_USER_NOTICE);
660
  } else {
661
  trigger_error(__('Can not Export to XML!','backwpup'),E_USER_ERROR);
@@ -671,7 +563,7 @@ class backwpup_dojob {
671
  }
672
  }
673
 
674
- private function optimize_db() {
675
  global $wpdb;
676
 
677
  trigger_error(__('Run Database optimize...','backwpup'),E_USER_NOTICE);
@@ -736,7 +628,7 @@ class backwpup_dojob {
736
  }
737
  }
738
 
739
- private function file_list() {
740
 
741
  //Make filelist
742
  trigger_error(__('Make a list of files to Backup ....','backwpup'),E_USER_NOTICE);
@@ -796,7 +688,7 @@ class backwpup_dojob {
796
 
797
  }
798
 
799
- private function zip_files() {
800
  if (class_exists('ZipArchive')) { //use php zip lib
801
  trigger_error(__('Create Backup Zip file...','backwpup'),E_USER_NOTICE);
802
  $zip = new ZipArchive;
@@ -807,8 +699,6 @@ class backwpup_dojob {
807
  if ($zip->addFile($files[79001], $files[79003])) {
808
  if ($this->cfg['logfilelist'])
809
  trigger_error(__('Add File to ZIP file:','backwpup').' '.$files[79001].' '.backwpup_formatBytes(filesize($files[79001])),E_USER_NOTICE);
810
- else
811
- @set_time_limit(300); //Set time limit higer every file
812
  } else {
813
  trigger_error(__('Can not add File to ZIP file:','backwpup').' '.$files[79001],E_USER_ERROR);
814
  }
@@ -840,9 +730,11 @@ class backwpup_dojob {
840
  }
841
  }
842
  }
 
 
843
  }
844
 
845
- private function tar_pack_files() {
846
 
847
  if ($this->backupfileformat=='.tar.gz') {
848
  $tarbackup=gzopen($this->backupdir.$this->backupfile,'w9');
@@ -864,8 +756,6 @@ class backwpup_dojob {
864
  foreach($this->filelist as $key => $files) {
865
  if ($this->cfg['logfilelist'])
866
  trigger_error(__('Add File to Backup Archive:','backwpup').' '.$files[79001].' '.backwpup_formatBytes(filesize($files[79001])),E_USER_NOTICE);
867
- else
868
- @set_time_limit(300); //Set time limit higer every file
869
 
870
  //check file exists
871
  if (!is_readable($files[79001]))
@@ -963,10 +853,12 @@ class backwpup_dojob {
963
  }
964
 
965
  trigger_error(__('Backup Archive file create done!','backwpup'),E_USER_NOTICE);
 
 
966
  }
967
 
968
 
969
- private function destination_ftp() {
970
 
971
  $this->need_free_memory(filesize($this->backupdir.$this->backupfile)*1.5);
972
 
@@ -1086,7 +978,7 @@ class backwpup_dojob {
1086
 
1087
  }
1088
 
1089
- private function destination_mail() {
1090
  trigger_error(__('Prepare Sending backup file with mail...','backwpup'),E_USER_NOTICE);
1091
  //Create PHP Mailer
1092
  require_once(ABSPATH.WPINC.'/class-phpmailer.php');
@@ -1147,7 +1039,7 @@ class backwpup_dojob {
1147
 
1148
  }
1149
 
1150
- private function destination_s3() {
1151
 
1152
  if (!class_exists('CFRuntime'))
1153
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
@@ -1207,7 +1099,7 @@ class backwpup_dojob {
1207
  }
1208
  }
1209
 
1210
- private function destination_rsc() {
1211
 
1212
  if (!class_exists('CF_Authentication'))
1213
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
@@ -1285,7 +1177,7 @@ class backwpup_dojob {
1285
  }
1286
  }
1287
 
1288
- private function destination_msazure() {
1289
 
1290
  if (!class_exists('Microsoft_WindowsAzure_Storage_Blob')) {
1291
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
@@ -1340,7 +1232,7 @@ class backwpup_dojob {
1340
  }
1341
  }
1342
 
1343
- private function destination_dir() {
1344
  $this->lastbackupdownloadurl='admin.php?page=BackWPup&subpage=backups&action=download&file='.$this->backupdir.$this->backupfile;
1345
  //Delete old Backupfiles
1346
  $backupfilelist=array();
@@ -1365,7 +1257,7 @@ class backwpup_dojob {
1365
  }
1366
  }
1367
 
1368
- private function destination_dropbox(){
1369
 
1370
  if (!class_exists('Dropbox'))
1371
  require_once (dirname(__FILE__).'/libs/dropbox/dropbox.php');
@@ -1409,7 +1301,7 @@ class backwpup_dojob {
1409
  rsort($backupfilelist);
1410
  $numdeltefiles=0;
1411
  for ($i=$this->job['dropemaxbackups'];$i<sizeof($backupfilelist);$i++) {
1412
- $dropbox->fileopsDelete($this->job['dropedir'].$backupfilelist[$i]); //delte files on Cloud
1413
  $numdeltefiles++;
1414
  }
1415
  if ($numdeltefiles>0)
@@ -1421,7 +1313,7 @@ class backwpup_dojob {
1421
  }
1422
  }
1423
 
1424
- private function destination_sugarsync(){
1425
 
1426
  if (!class_exists('SugarSync'))
1427
  require_once (dirname(__FILE__).'/libs/sugarsync.php');
@@ -1430,26 +1322,86 @@ class backwpup_dojob {
1430
 
1431
  try {
1432
  $sugarsync = new SugarSync($this->job['sugaruser'],base64_decode($this->job['sugarpass']),BACKWPUP_SUGARSYNC_ACCESSKEY, BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY);
1433
- // set the tokens
1434
  $user=$sugarsync->user();
1435
- $workspace=$sugarsync->get($user->syncfolders);
1436
- $workspacefiles=$sugarsync->get('https://api.sugarsync.com/folder/:sc:970679:1/contents');
1437
- //var_dump($workspacefiles);
1438
-
1439
- $folder=$sugarsync->createfolder($user->webArchive,untrailingslashit($this->job['sugardir']));
1440
- //$reponse=$sugarsync->createfile($user->webArchive,$this->backupdir.$this->backupfile);
1441
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1442
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1443
  } catch (Exception $e) {
1444
  trigger_error(__('SugarSync API:','backwpup').' '.$e->getMessage(),E_USER_ERROR);
1445
  }
1446
  }
1447
 
1448
 
1449
- private function job_end($logfile ='') {
1450
- if (empty($logfile)) $logfile=$this->logdir.$this->logfile;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1451
  restore_error_handler();
1452
-
1453
  if (!($filesize=@filesize($this->backupdir.$this->backupfile))) //Set the filezie corectly
1454
  $filesize=0;
1455
 
@@ -1457,20 +1409,24 @@ class backwpup_dojob {
1457
  @unlink($this->tempdir.DB_NAME.'.sql');
1458
  @unlink($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
1459
 
1460
- if (empty($this->job['backupdir']) and is_file($this->backupdir.$this->backupfile)) { //delete backup file in temp dir
1461
  unlink($this->backupdir.$this->backupfile);
1462
- }
1463
-
1464
- $jobs=get_option('backwpup_jobs');
1465
  $jobs[$this->jobid]['lastrun']=$jobs[$this->jobid]['starttime'];
1466
  $jobs[$this->jobid]['lastruntime']=current_time('timestamp')-$jobs[$this->jobid]['starttime'];
1467
  $jobs[$this->jobid]['logfile']='';
 
1468
  $jobs[$this->jobid]['starttime']='';
1469
- $jobs[$this->jobid]['lastbackupdownloadurl']=$this->lastbackupdownloadurl;
 
 
 
1470
  update_option('backwpup_jobs',$jobs); //Save Settings
 
1471
  $this->job['lastrun']=$jobs[$this->jobid]['lastrun'];
1472
  $this->job['lastruntime']=$jobs[$this->jobid]['lastruntime'];
1473
-
1474
  //write heder info
1475
  $fd=fopen($logfile,'r+');
1476
  $found=0;
@@ -1491,10 +1447,12 @@ class backwpup_dojob {
1491
  $filepos=ftell($fd);
1492
  }
1493
  fclose($fd);
 
1494
  //logfile end
1495
  $fd=fopen($logfile,'a');
1496
  fwrite($fd,"</body>\n</html>\n");
1497
  fclose($fd);
 
1498
  //gzip logfile
1499
  if ($this->cfg['gzlogs']) {
1500
  $fd=fopen($logfile,'r');
@@ -1509,8 +1467,10 @@ class backwpup_dojob {
1509
  $jobs=get_option('backwpup_jobs');
1510
  $jobs[$this->jobid]['lastlogfile']=$logfile;
1511
  update_option('backwpup_jobs',$jobs); //Save Settings
1512
- }
 
1513
  $logdata=backwpup_read_logheader($logfile);
 
1514
  //Send mail with log
1515
  $sendmail=false;
1516
  if ($logdata['errors']>0 and $this->job['mailerroronly'] and !empty($this->job['mailaddresslog']))
@@ -1558,7 +1518,7 @@ class backwpup_dojob {
1558
  $phpmailer->Body = $mailbody;
1559
  $phpmailer->AddAttachment($logfile);
1560
  $phpmailer->Send();
1561
- }
1562
  }
1563
  }
1564
  ?>
10
  class backwpup_dojob {
11
 
12
  private $jobid=0;
13
+ public $filelist=array();
14
  private $tempfilelist=array();
15
+ public $todo=array();
16
  private $allfilesize=0;
17
+ public $backupfile='';
18
+ public $backupfileformat='.zip';
19
+ public $backupdir='';
20
  private $lastbackupdownloadurl='';
21
  public $logdir='';
22
  public $logfile='';
23
  private $tempdir='';
24
+ public $cfg=array();
25
+ public $job=array();
26
 
27
  public function __construct($jobid) {
28
  global $wpdb;
29
  @ini_get('safe_mode','Off'); //disable safe mode
30
  @ini_set('ignore_user_abort','Off'); //Set PHP ini setting
31
  ignore_user_abort(true); //user can't abort script (close windows or so.)
32
+ @set_time_limit(0); //set script run time limit to wen its done
33
  $this->jobid=$jobid; //set job id
34
  $this->cfg=get_option('backwpup'); //load config
35
  $jobs=get_option('backwpup_jobs'); //load jobdata
93
  $this->job_end($jobs[$this->jobid]['logfile']);
94
  } else {
95
  trigger_error(sprintf(__('Job %1$s already running!!!','backwpup'),$jobs[$this->jobid]['name']),E_USER_ERROR);
 
96
  }
97
  }
98
  //Set job start settings
134
  ini_set('memory_limit', apply_filters( 'admin_memory_limit', '256M' )); //Wordpress default
135
  trigger_error(sprintf(__('Memory limit set to %1$s ,because can not use PHP: memory_get_usage() function to dynamically increase the Memory!','backwpup'),ini_get('memory_limit')),E_USER_WARNING);
136
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  }
138
 
139
  //function for PHP error handling
215
  if ($args[0]==E_ERROR or $args[0]==E_CORE_ERROR or $args[0]==E_COMPILE_ERROR) {//Die on fatal php errors.
216
  $this->send_log_mail();
217
  die();
218
+ }
 
 
219
  //true for no more php error hadling.
220
  return true;
221
  } else {
333
  }
334
  }
335
 
336
+ public function check_db() {
337
  global $wpdb;
338
 
339
  trigger_error(__('Run Database check...','backwpup'),E_USER_NOTICE);
440
  fwrite($file, "/*!40000 ALTER TABLE ".$table." ENABLE KEYS */;\n");
441
  }
442
 
443
+ public function dump_db() {
444
  global $wpdb;
445
  trigger_error(__('Run Database Dump to file...','backwpup'),E_USER_NOTICE);
446
  //Set maintenance
526
  $this->maintenance_mode(false);
527
  }
528
 
529
+ public function export_wp() {
530
  $this->need_free_memory(1048576); //1MB free memory
531
  if (function_exists('curl_exec')) {
532
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
533
  $ch = curl_init();
534
+ curl_setopt($ch, CURLOPT_URL, plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.wp_create_nonce('backwpup-xmlexport'));
535
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
536
  curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
537
  curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
547
  curl_close($ch);
548
  } elseif (ini_get('allow_url_fopen')==true or ini_get('allow_url_fopen')==1 or strtolower(ini_get('allow_url_fopen'))=="on") {
549
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
550
+ if (copy(plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.wp_create_nonce('backwpup-xmlexport'),$this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml')) {
551
  trigger_error(__('Export to XML done!','backwpup'),E_USER_NOTICE);
552
  } else {
553
  trigger_error(__('Can not Export to XML!','backwpup'),E_USER_ERROR);
563
  }
564
  }
565
 
566
+ public function optimize_db() {
567
  global $wpdb;
568
 
569
  trigger_error(__('Run Database optimize...','backwpup'),E_USER_NOTICE);
628
  }
629
  }
630
 
631
+ public function file_list() {
632
 
633
  //Make filelist
634
  trigger_error(__('Make a list of files to Backup ....','backwpup'),E_USER_NOTICE);
688
 
689
  }
690
 
691
+ public function zip_files() {
692
  if (class_exists('ZipArchive')) { //use php zip lib
693
  trigger_error(__('Create Backup Zip file...','backwpup'),E_USER_NOTICE);
694
  $zip = new ZipArchive;
699
  if ($zip->addFile($files[79001], $files[79003])) {
700
  if ($this->cfg['logfilelist'])
701
  trigger_error(__('Add File to ZIP file:','backwpup').' '.$files[79001].' '.backwpup_formatBytes(filesize($files[79001])),E_USER_NOTICE);
 
 
702
  } else {
703
  trigger_error(__('Can not add File to ZIP file:','backwpup').' '.$files[79001],E_USER_ERROR);
704
  }
730
  }
731
  }
732
  }
733
+ if ($filesize=filesize($this->backupdir.$this->backupfile))
734
+ trigger_error(sprintf(__('Backup Archive File size is %1s','backwpup'),backwpup_formatBytes($filesize)),E_USER_NOTICE);
735
  }
736
 
737
+ public function tar_pack_files() {
738
 
739
  if ($this->backupfileformat=='.tar.gz') {
740
  $tarbackup=gzopen($this->backupdir.$this->backupfile,'w9');
756
  foreach($this->filelist as $key => $files) {
757
  if ($this->cfg['logfilelist'])
758
  trigger_error(__('Add File to Backup Archive:','backwpup').' '.$files[79001].' '.backwpup_formatBytes(filesize($files[79001])),E_USER_NOTICE);
 
 
759
 
760
  //check file exists
761
  if (!is_readable($files[79001]))
853
  }
854
 
855
  trigger_error(__('Backup Archive file create done!','backwpup'),E_USER_NOTICE);
856
+ if ($filesize=filesize($this->backupdir.$this->backupfile))
857
+ trigger_error(sprintf(__('Backup Archive File size is %1s','backwpup'),backwpup_formatBytes($filesize)),E_USER_NOTICE);
858
  }
859
 
860
 
861
+ public function destination_ftp() {
862
 
863
  $this->need_free_memory(filesize($this->backupdir.$this->backupfile)*1.5);
864
 
978
 
979
  }
980
 
981
+ public function destination_mail() {
982
  trigger_error(__('Prepare Sending backup file with mail...','backwpup'),E_USER_NOTICE);
983
  //Create PHP Mailer
984
  require_once(ABSPATH.WPINC.'/class-phpmailer.php');
1039
 
1040
  }
1041
 
1042
+ public function destination_s3() {
1043
 
1044
  if (!class_exists('CFRuntime'))
1045
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
1099
  }
1100
  }
1101
 
1102
+ public function destination_rsc() {
1103
 
1104
  if (!class_exists('CF_Authentication'))
1105
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
1177
  }
1178
  }
1179
 
1180
+ public function destination_msazure() {
1181
 
1182
  if (!class_exists('Microsoft_WindowsAzure_Storage_Blob')) {
1183
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
1232
  }
1233
  }
1234
 
1235
+ public function destination_dir() {
1236
  $this->lastbackupdownloadurl='admin.php?page=BackWPup&subpage=backups&action=download&file='.$this->backupdir.$this->backupfile;
1237
  //Delete old Backupfiles
1238
  $backupfilelist=array();
1257
  }
1258
  }
1259
 
1260
+ public function destination_dropbox(){
1261
 
1262
  if (!class_exists('Dropbox'))
1263
  require_once (dirname(__FILE__).'/libs/dropbox/dropbox.php');
1301
  rsort($backupfilelist);
1302
  $numdeltefiles=0;
1303
  for ($i=$this->job['dropemaxbackups'];$i<sizeof($backupfilelist);$i++) {
1304
+ $dropbox->fileopsDelete($this->job['dropedir'].$backupfilelist[$i]); //delete files on Cloud
1305
  $numdeltefiles++;
1306
  }
1307
  if ($numdeltefiles>0)
1313
  }
1314
  }
1315
 
1316
+ public function destination_sugarsync(){
1317
 
1318
  if (!class_exists('SugarSync'))
1319
  require_once (dirname(__FILE__).'/libs/sugarsync.php');
1322
 
1323
  try {
1324
  $sugarsync = new SugarSync($this->job['sugaruser'],base64_decode($this->job['sugarpass']),BACKWPUP_SUGARSYNC_ACCESSKEY, BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY);
1325
+ //Check Quota
1326
  $user=$sugarsync->user();
1327
+ if (!empty($user->nickname)) {
1328
+ trigger_error(__('Authed to SugarSync with Nick ','backwpup').$user->nickname,E_USER_NOTICE);
1329
+ }
1330
+ $sugarsyncfreespase=$user->quota->limit-$user->quota->usage;
1331
+ if (filesize($this->backupdir.$this->backupfile)>$sugarsyncfreespase) {
1332
+ trigger_error(__('No free space left on SugarSync!!!','backwpup'),E_USER_ERROR);
1333
+ return;
1334
+ } else {
1335
+ trigger_error(__('Free Space on SugarSync: ','backwpup').backwpup_formatBytes($sugarsyncfreespase),E_USER_NOTICE);
1336
+ }
1337
+ //Create and change folder
1338
+ $sugarsync->mkdir($this->job['sugardir'],$this->job['sugarroot']);
1339
+ $sugarsync->chdir($this->job['sugardir'],$this->job['sugarroot']);
1340
+ //Upload to Sugarsync
1341
+ $reponse=$sugarsync->upload($this->backupdir.$this->backupfile);
1342
+ if (is_object($reponse)) {
1343
+ $this->lastbackupdownloadurl='admin.php?page=BackWPup&subpage=backups&action=downloadsugarsync&file='.(string)$reponse.'&jobid='.$this->jobid;
1344
+ trigger_error(__('Backup File transferred to SugarSync.','backwpup'),E_USER_NOTICE);
1345
+ } else {
1346
+ trigger_error(__('Can not transfere Backup file to SugarSync:','backwpup'),E_USER_ERROR);
1347
+ }
1348
 
1349
+ if ($this->job['sugarmaxbackups']>0) { //Delete old backups
1350
+ $backupfilelist=array();
1351
+ $getfiles=$sugarsync->getcontents('file');
1352
+ if (is_object($getfiles)) {
1353
+ foreach ($getfiles->file as $getfile) {
1354
+ if ($this->job['fileprefix'] == substr($getfile->displayName,0,strlen($this->job['fileprefix'])) and $this->backupfileformat == substr($getfile->displayName,-strlen($this->backupfileformat)))
1355
+ $backupfilelist[]=$getfile->displayName;
1356
+ $backupfileref[utf8_encode($getfile->displayName)]=$getfile->ref;
1357
+ }
1358
+ }
1359
+ if (sizeof($backupfilelist)>0) {
1360
+ rsort($backupfilelist);
1361
+ $numdeltefiles=0;
1362
+ for ($i=$this->job['sugarmaxbackups'];$i<sizeof($backupfilelist);$i++) {
1363
+ $sugarsync->delete($backupfileref[utf8_encode($backupfilelist[$i])]); //delete files on Cloud
1364
+ $numdeltefiles++;
1365
+ }
1366
+ if ($numdeltefiles>0)
1367
+ trigger_error($numdeltefiles.' '.__('files deleted on Sugarsync Folder!','backwpup'),E_USER_NOTICE);
1368
+ }
1369
+ }
1370
  } catch (Exception $e) {
1371
  trigger_error(__('SugarSync API:','backwpup').' '.$e->getMessage(),E_USER_ERROR);
1372
  }
1373
  }
1374
 
1375
 
1376
+ public function job_end($logfile ='') {
1377
+ if (empty($logfile))
1378
+ $logfile=$this->logdir.$this->logfile;
1379
+
1380
+ if ($logfile==$this->logdir.$this->logfile) {
1381
+ //delete old logs
1382
+ if (!empty($this->cfg['maxlogs'])) {
1383
+ if ( $dir = opendir($this->logdir) ) { //make file list
1384
+ while (($file = readdir($dir)) !== false ) {
1385
+ if ('backwpup_log_' == substr($file,0,strlen('backwpup_log_')) and (".html" == substr($file,-5) or ".html.gz" == substr($file,-8)))
1386
+ $logfilelist[]=$file;
1387
+ }
1388
+ closedir( $dir );
1389
+ }
1390
+ if (sizeof($logfilelist)>0) {
1391
+ rsort($logfilelist);
1392
+ $numdeltefiles=0;
1393
+ for ($i=$this->cfg['maxlogs'];$i<sizeof($logfilelist);$i++) {
1394
+ unlink($this->logdir.$logfilelist[$i]);
1395
+ $numdeltefiles++;
1396
+ }
1397
+ if ($numdeltefiles>0)
1398
+ trigger_error($numdeltefiles.' '.__('old Log files deleted!!!','backwpup'),E_USER_NOTICE);
1399
+ }
1400
+ }
1401
+ trigger_error(sprintf(__('Job done in %1s sec.','backwpup'),current_time('timestamp')-$this->job['starttime']),E_USER_NOTICE);
1402
+ }
1403
  restore_error_handler();
1404
+
1405
  if (!($filesize=@filesize($this->backupdir.$this->backupfile))) //Set the filezie corectly
1406
  $filesize=0;
1407
 
1409
  @unlink($this->tempdir.DB_NAME.'.sql');
1410
  @unlink($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
1411
 
1412
+ if (empty($this->job['backupdir']) and is_file($this->backupdir.$this->backupfile)) //delete backup file in temp dir
1413
  unlink($this->backupdir.$this->backupfile);
1414
+
1415
+ $jobs=get_option('backwpup_jobs');
 
1416
  $jobs[$this->jobid]['lastrun']=$jobs[$this->jobid]['starttime'];
1417
  $jobs[$this->jobid]['lastruntime']=current_time('timestamp')-$jobs[$this->jobid]['starttime'];
1418
  $jobs[$this->jobid]['logfile']='';
1419
+ $jobs[$this->jobid]['lastlogfile']=$logfile;
1420
  $jobs[$this->jobid]['starttime']='';
1421
+ if (!empty($this->lastbackupdownloadurl))
1422
+ $jobs[$this->jobid]['lastbackupdownloadurl']=$this->lastbackupdownloadurl;
1423
+ else
1424
+ $jobs[$this->jobid]['lastbackupdownloadurl']='';
1425
  update_option('backwpup_jobs',$jobs); //Save Settings
1426
+
1427
  $this->job['lastrun']=$jobs[$this->jobid]['lastrun'];
1428
  $this->job['lastruntime']=$jobs[$this->jobid]['lastruntime'];
1429
+
1430
  //write heder info
1431
  $fd=fopen($logfile,'r+');
1432
  $found=0;
1447
  $filepos=ftell($fd);
1448
  }
1449
  fclose($fd);
1450
+
1451
  //logfile end
1452
  $fd=fopen($logfile,'a');
1453
  fwrite($fd,"</body>\n</html>\n");
1454
  fclose($fd);
1455
+
1456
  //gzip logfile
1457
  if ($this->cfg['gzlogs']) {
1458
  $fd=fopen($logfile,'r');
1467
  $jobs=get_option('backwpup_jobs');
1468
  $jobs[$this->jobid]['lastlogfile']=$logfile;
1469
  update_option('backwpup_jobs',$jobs); //Save Settings
1470
+ }
1471
+
1472
  $logdata=backwpup_read_logheader($logfile);
1473
+
1474
  //Send mail with log
1475
  $sendmail=false;
1476
  if ($logdata['errors']>0 and $this->job['mailerroronly'] and !empty($this->job['mailaddresslog']))
1518
  $phpmailer->Body = $mailbody;
1519
  $phpmailer->AddAttachment($logfile);
1520
  $phpmailer->Send();
1521
+ }
1522
  }
1523
  }
1524
  ?>
app/dropbox-auth.php CHANGED
@@ -3,12 +3,17 @@ if (file_exists(trim($_GET['wpabs']).'wp-load.php')) {
3
  require_once(trim($_GET['wpabs']).'wp-load.php'); /** Setup WordPress environment */
4
  } else {
5
  header("HTTP/1.0 404 Not Found");
 
 
 
 
 
 
6
  }
7
  require_once (dirname(__FILE__).'/libs/dropbox/dropbox.php');
8
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
9
  //for Dropbox oAuth backlink
10
  if ($_GET['uid']>1 and !empty($_GET['oauth_token'])) {
11
- $reqtoken=get_option('backwpup_dropboxrequest');
12
  if ($reqtoken['oAuthRequestToken']==$_GET['oauth_token']) {
13
  //Get Access Tokens
14
  $oAuthStuff = $dropbox->oAuthAccessToken($reqtoken['oAuthRequestToken'],$reqtoken['oAuthRequestTokenSecret']);
@@ -19,7 +24,7 @@ if ($_GET['uid']>1 and !empty($_GET['oauth_token'])) {
19
  update_option('backwpup_jobs',$jobs);
20
  delete_option('backwpup_dropboxrequest');
21
  //Go back to jobs page
22
- header("Location: ".$reqtoken['referer']."#dropbox");
23
  }
24
  }
25
  ?>
3
  require_once(trim($_GET['wpabs']).'wp-load.php'); /** Setup WordPress environment */
4
  } else {
5
  header("HTTP/1.0 404 Not Found");
6
+ die();
7
+ }
8
+ $reqtoken=get_option('backwpup_dropboxrequest');
9
+ if (!is_array($reqtoken)) {
10
+ header("HTTP/1.0 404 Not Found");
11
+ die();
12
  }
13
  require_once (dirname(__FILE__).'/libs/dropbox/dropbox.php');
14
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
15
  //for Dropbox oAuth backlink
16
  if ($_GET['uid']>1 and !empty($_GET['oauth_token'])) {
 
17
  if ($reqtoken['oAuthRequestToken']==$_GET['oauth_token']) {
18
  //Get Access Tokens
19
  $oAuthStuff = $dropbox->oAuthAccessToken($reqtoken['oAuthRequestToken'],$reqtoken['oAuthRequestTokenSecret']);
24
  update_option('backwpup_jobs',$jobs);
25
  delete_option('backwpup_dropboxrequest');
26
  //Go back to jobs page
27
+ header("Location: ".get_admin_url().'admin.php?page=BackWPup&subpage=edit&jobid='.$reqtoken['jobid'].'&_wpnonce='.wp_create_nonce('edit-job').'#dropbox');
28
  }
29
  }
30
  ?>
app/js/options.js CHANGED
@@ -112,6 +112,26 @@ jQuery(document).ready( function($) {
112
 
113
  $('#rscUsername').change(function() {rscgetcontainer();});
114
  $('#rscAPIKey').change(function() {rscgetcontainer();});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
 
116
  if ( $('#title').val() == '' )
117
  $('#title').siblings('#title-prompt-text').css('visibility', '');
112
 
113
  $('#rscUsername').change(function() {rscgetcontainer();});
114
  $('#rscAPIKey').change(function() {rscgetcontainer();});
115
+
116
+ function sugarsyncgetroot() {
117
+ var sugaruser = $('#sugaruser').val();
118
+ var sugarpass = $('#sugarpass').val();
119
+ var sugarrootselected = $('#sugarrootselected').val();
120
+ var data = {
121
+ action: 'backwpup_get_sugarsync_root',
122
+ sugaruser: sugaruser,
123
+ sugarpass: sugarpass,
124
+ sugarrootselected: sugarrootselected
125
+ };
126
+ $.post(ajaxurl, data, function(response) {
127
+ $('#sugarroot').remove();
128
+ $('#sugarrootselected').after(response);
129
+ });
130
+ }
131
+
132
+ $('#sugaruser').change(function() {sugarsyncgetroot();});
133
+ $('#sugarpass').change(function() {sugarsyncgetroot();});
134
+
135
 
136
  if ( $('#title').val() == '' )
137
  $('#title').siblings('#title-prompt-text').css('visibility', '');
app/libs/dropbox/dropbox.php CHANGED
@@ -1,5 +1,6 @@
1
  <?PHP
2
- require_once(dirname(__FILE__).'/oauth.php');
 
3
 
4
  class Dropbox {
5
  const API_URL = 'https://api.dropbox.com/';
@@ -37,7 +38,7 @@ class Dropbox {
37
 
38
  public function upload($file, $path = ''){
39
  $file = preg_replace("/\\\\/", "/",$file);
40
- if (!is_readable($file)){
41
  throw new DropboxException("Error: File \"$file\" is not readable or doesn't exist.");
42
  }
43
  if (!filesize($file)>314572800){
@@ -98,27 +99,34 @@ class Dropbox {
98
  $req_req->sign_request($this->OAuthSignatureMethod, $this->OAuthConsumer, NULL);
99
  $ch = curl_init();
100
  curl_setopt($ch, CURLOPT_URL, $req_req);
 
 
101
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
 
 
102
  $content = curl_exec($ch);
103
  $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
104
- if ($status>=200 and $status<300) {
105
  $content = (array) explode('&', $content);
106
  foreach($content as $chunk) {
107
  $chunks = explode('=', $chunk, 2);
108
  if(count($chunks) == 2) $return[$chunks[0]] = $chunks[1];
109
  }
 
110
  return $return;
111
  } else {
112
  $output = json_decode($content, true);
113
  if(isset($output['error']) && is_string($output['error'])) $message = $output['error'];
114
  elseif(isset($output['error']['hash']) && $output['error']['hash'] != '') $message = (string) $output['error']['hash'];
 
115
  else $message = '('.$status.') Invalid response.';
116
  throw new DropboxException($message);
117
  }
118
  }
119
 
120
  public function oAuthAuthorize($oAuthToken,$callback_url) {
121
- $auth_url = self::API_URL.self::API_VERSION_URL."oauth/authorize?oauth_token=".$oAuthToken."&oauth_callback=".urlencode($callback_url);
122
  header('Location: '. $auth_url);
123
  exit;
124
  }
@@ -129,10 +137,15 @@ class Dropbox {
129
  $acc_req->sign_request($this->OAuthSignatureMethod, $this->OAuthConsumer, $oAuthToken);
130
  $ch = curl_init();
131
  curl_setopt($ch, CURLOPT_URL, $acc_req);
 
 
132
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
 
 
133
  $content = curl_exec($ch);
134
  $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
135
- if ($status>=200 and $status<300) {
136
  $content = (array) explode('&', $content);
137
  $return = array();
138
  foreach($content as $chunk) {
@@ -145,6 +158,7 @@ class Dropbox {
145
  $output = json_decode($content, true);
146
  if(isset($output['error']) && is_string($output['error'])) $message = $output['error'];
147
  elseif(isset($output['error']['hash']) && $output['error']['hash'] != '') $message = (string) $output['error']['hash'];
 
148
  else $message = '('.$status.') Invalid response.';
149
  throw new DropboxException($message);
150
  }
@@ -161,10 +175,11 @@ class Dropbox {
161
  $ch = curl_init();
162
  curl_setopt($ch, CURLOPT_URL, $Request->to_url());
163
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
164
- if ($this->noSSLCheck){
165
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
166
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
167
- }
 
168
 
169
  /* file upload */
170
  if ($file !== null){
@@ -175,17 +190,16 @@ class Dropbox {
175
 
176
  $content = curl_exec($ch);
177
  $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
178
-
179
- curl_close($ch);
180
  $output = json_decode($content, true);
181
 
182
-
183
- if (isset($output['error']) or $status>=300 or $status<200) {
184
  if(isset($output['error']) && is_string($output['error'])) $message = $output['error'];
185
  elseif(isset($output['error']['hash']) && $output['error']['hash'] != '') $message = (string) $output['error']['hash'];
 
186
  else $message = '('.$status.') Invalid response.';
187
  throw new DropboxException($message);
188
  } else {
 
189
  if (!is_array($output))
190
  return $content;
191
  else
1
  <?PHP
2
+ if (!class_exists('OAuthException'))
3
+ require_once(dirname(__FILE__).'/oauth.php');
4
 
5
  class Dropbox {
6
  const API_URL = 'https://api.dropbox.com/';
38
 
39
  public function upload($file, $path = ''){
40
  $file = preg_replace("/\\\\/", "/",$file);
41
+ if (!is_readable($file) or !is_file($file)){
42
  throw new DropboxException("Error: File \"$file\" is not readable or doesn't exist.");
43
  }
44
  if (!filesize($file)>314572800){
99
  $req_req->sign_request($this->OAuthSignatureMethod, $this->OAuthConsumer, NULL);
100
  $ch = curl_init();
101
  curl_setopt($ch, CURLOPT_URL, $req_req);
102
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
103
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
104
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
105
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
106
+ curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
107
+ curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
108
  $content = curl_exec($ch);
109
  $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
110
+ if ($status>=200 and $status<300 and 0==curl_errno($ch) ) {
111
  $content = (array) explode('&', $content);
112
  foreach($content as $chunk) {
113
  $chunks = explode('=', $chunk, 2);
114
  if(count($chunks) == 2) $return[$chunks[0]] = $chunks[1];
115
  }
116
+ curl_close($ch);
117
  return $return;
118
  } else {
119
  $output = json_decode($content, true);
120
  if(isset($output['error']) && is_string($output['error'])) $message = $output['error'];
121
  elseif(isset($output['error']['hash']) && $output['error']['hash'] != '') $message = (string) $output['error']['hash'];
122
+ elseif (0!=curl_errno($ch)) $message = '('.curl_errno($ch).') '.curl_error($ch);
123
  else $message = '('.$status.') Invalid response.';
124
  throw new DropboxException($message);
125
  }
126
  }
127
 
128
  public function oAuthAuthorize($oAuthToken,$callback_url) {
129
+ $auth_url = "https://www.dropbox.com/".self::API_VERSION_URL."oauth/authorize?oauth_token=".$oAuthToken."&oauth_callback=".urlencode($callback_url);
130
  header('Location: '. $auth_url);
131
  exit;
132
  }
137
  $acc_req->sign_request($this->OAuthSignatureMethod, $this->OAuthConsumer, $oAuthToken);
138
  $ch = curl_init();
139
  curl_setopt($ch, CURLOPT_URL, $acc_req);
140
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
141
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
142
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
143
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
144
+ curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
145
+ curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
146
  $content = curl_exec($ch);
147
  $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
148
+ if ($status>=200 and $status<300 and 0==curl_errno($ch)) {
149
  $content = (array) explode('&', $content);
150
  $return = array();
151
  foreach($content as $chunk) {
158
  $output = json_decode($content, true);
159
  if(isset($output['error']) && is_string($output['error'])) $message = $output['error'];
160
  elseif(isset($output['error']['hash']) && $output['error']['hash'] != '') $message = (string) $output['error']['hash'];
161
+ elseif (0!=curl_errno($ch)) $message = '('.curl_errno($ch).') '.curl_error($ch);
162
  else $message = '('.$status.') Invalid response.';
163
  throw new DropboxException($message);
164
  }
175
  $ch = curl_init();
176
  curl_setopt($ch, CURLOPT_URL, $Request->to_url());
177
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
178
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
179
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
180
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
181
+ curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
182
+ curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
183
 
184
  /* file upload */
185
  if ($file !== null){
190
 
191
  $content = curl_exec($ch);
192
  $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
 
193
  $output = json_decode($content, true);
194
 
195
+ if (isset($output['error']) or $status>=300 or $status<200 or curl_errno($ch)>0) {
 
196
  if(isset($output['error']) && is_string($output['error'])) $message = $output['error'];
197
  elseif(isset($output['error']['hash']) && $output['error']['hash'] != '') $message = (string) $output['error']['hash'];
198
+ elseif (0!=curl_errno($ch)) $message = '('.curl_errno($ch).') '.curl_error($ch);
199
  else $message = '('.$status.') Invalid response.';
200
  throw new DropboxException($message);
201
  } else {
202
+ curl_close($ch);
203
  if (!is_array($output))
204
  return $content;
205
  else
app/libs/sugarsync.php CHANGED
@@ -33,7 +33,7 @@
33
  class SugarSync {
34
 
35
  // debug
36
- const DEBUG = true;
37
 
38
  // url for the sugarsync-api
39
  const API_URL = 'https://api.sugarsync.com';
@@ -47,8 +47,9 @@ class SugarSync {
47
  *
48
  * @var string
49
  */
50
- private $AuthToken = '';
51
-
 
52
 
53
  // class methods
54
  /**
@@ -83,7 +84,7 @@ class SugarSync {
83
  $curl = curl_init();
84
  //set otions
85
  curl_setopt($curl,CURLOPT_URL,self::API_URL .'/authorization');
86
- //curl_setopt($curl,CURLOPT_USERAGENT,'PHP SugarSync/'. self::VERSION);
87
  if(ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
88
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
89
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
@@ -102,7 +103,7 @@ class SugarSync {
102
  curl_close($curl);
103
 
104
  if ($curlgetinfo['http_code']>=200 and $curlgetinfo['http_code']<=204) {
105
- if (preg_match('/Location:(.*?)\n/', $response, $matches))
106
  $this->AuthToken=$matches[1];
107
  } else {
108
  if ($curlgetinfo['http_code']==401)
@@ -130,7 +131,7 @@ class SugarSync {
130
 
131
  // redefine
132
  $url = (string) $url;
133
- $data = (string) $data;
134
  $method = (string) $method;
135
 
136
  // validate method
@@ -146,18 +147,16 @@ class SugarSync {
146
  // init
147
  $curl = curl_init();
148
  //set otions
 
149
  curl_setopt($curl,CURLOPT_USERAGENT,'PHP SugarSync/'. self::VERSION);
150
  if(ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
151
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
152
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
153
  curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
154
 
155
-
156
  if ($method == 'POST') {
157
  $headers[] = 'Content-Type: application/xml; charset=UTF-8';
158
- //$url=str_replace(':','/',$url);
159
  curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
160
- echo $data;
161
  curl_setopt($curl,CURLOPT_POST,true);
162
  } elseif ($method == 'PUT') {
163
  if (is_file($data) and is_readable($data)) {
@@ -165,12 +164,8 @@ class SugarSync {
165
  curl_setopt($curl,CURLOPT_PUT,true);
166
  curl_setopt($curl,CURLOPT_INFILE,$datafilefd);
167
  curl_setopt($curl,CURLOPT_INFILESIZE,filesize($data));
168
- } elseif (is_sting($data) and !is_file($data)) {
169
- curl_setopt($curl,CURLOPT_PUT,true);
170
- curl_setopt($curl,CURLOPT_INFILE,$data);
171
- curl_setopt($curl,CURLOPT_INFILESIZE,strnlen($data));
172
- } else {
173
- throw new SugarSyncException('Is not a readable file or string:'. $data);
174
  }
175
  } elseif ($method == 'DELETE') {
176
  curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'DELETE');
@@ -179,7 +174,6 @@ class SugarSync {
179
  }
180
 
181
  // set headers
182
- curl_setopt($curl,CURLOPT_URL, $url);
183
  curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
184
  curl_setopt($curl,CURLINFO_HEADER_OUT,self::DEBUG);
185
 
@@ -199,8 +193,12 @@ class SugarSync {
199
  throw new SugarSyncException('cUrl Error: '. curl_error($curl));
200
 
201
  curl_close($curl);
 
 
202
 
203
  if ($curlgetinfo['http_code']>=200 and $curlgetinfo['http_code']<300) {
 
 
204
  if (!empty($response))
205
  return simplexml_load_string($response);
206
  } else {
@@ -215,23 +213,100 @@ class SugarSync {
215
  }
216
  }
217
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  public function user() {
219
- $request=$this->doCall(self::API_URL .'/user');
220
- return $request;
221
  }
222
 
223
 
224
  public function get($url) {
225
- $request=$this->doCall($url,'','GET');
226
- return $request;
 
 
 
227
  }
228
 
229
  public function delete($url) {
230
- $request=$this->doCall($url,'DELTE');
231
  }
232
 
233
 
234
- public function getcontents($url,$start=0,$max=500) {
235
  if (strtolower($type)=='folder' or strtolower($type)=='file')
236
  $parameters.='type='.strtolower($type);
237
  if (!empty($start) and is_integer($start)) {
@@ -246,31 +321,30 @@ class SugarSync {
246
  $parameters.='max='.$max;
247
  }
248
 
249
- $request=$this->doCall($url.'?'.$parameters);
250
  return $request;
251
  }
252
 
253
- public function createfile($url,$file,$name='') {
254
  if (empty($name))
255
  $name=basename($file);
256
- $name=utf8_encode($name);
257
  $xmlrequest ='<?xml version="1.0" encoding="UTF-8"?>';
258
  $xmlrequest.='<file>';
259
- $xmlrequest.='<displayName>'.$name.'</displayName>';
260
- if (!is_file($file))
261
- $xmlrequest.='<mediaType>'.mime_content_type($file).'</mediaType>';
 
 
 
262
  $xmlrequest.='</file>';
263
- $request=$this->doCall($url,$xmlrequest,'POST');
264
-
265
- //$request=$this->doCall($url,$file,'PUT');
266
- }
267
-
268
- public function createfolder($url,$folder) {
269
- $xmlrequest ='<?xml version="1.0" encoding="UTF-8"?>';
270
- $xmlrequest.='<folder>';
271
- $xmlrequest.='<displayName>'.utf8_encode($folder).'</displayName>';
272
- $xmlrequest.='</folder>';
273
- $request=$this->doCall($url,$xmlrequest,'POST');
274
  }
275
 
276
  }
33
  class SugarSync {
34
 
35
  // debug
36
+ const DEBUG = false;
37
 
38
  // url for the sugarsync-api
39
  const API_URL = 'https://api.sugarsync.com';
47
  *
48
  * @var string
49
  */
50
+ protected $AuthToken = '';
51
+
52
+ protected $folder = '';
53
 
54
  // class methods
55
  /**
84
  $curl = curl_init();
85
  //set otions
86
  curl_setopt($curl,CURLOPT_URL,self::API_URL .'/authorization');
87
+ curl_setopt($curl,CURLOPT_USERAGENT,'PHP SugarSync/'. self::VERSION);
88
  if(ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
89
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
90
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
103
  curl_close($curl);
104
 
105
  if ($curlgetinfo['http_code']>=200 and $curlgetinfo['http_code']<=204) {
106
+ if (preg_match('/Location:(.*?)\r/i', $response, $matches))
107
  $this->AuthToken=$matches[1];
108
  } else {
109
  if ($curlgetinfo['http_code']==401)
131
 
132
  // redefine
133
  $url = (string) $url;
134
+ //$data = (string) $data;
135
  $method = (string) $method;
136
 
137
  // validate method
147
  // init
148
  $curl = curl_init();
149
  //set otions
150
+ curl_setopt($curl,CURLOPT_URL, $url);
151
  curl_setopt($curl,CURLOPT_USERAGENT,'PHP SugarSync/'. self::VERSION);
152
  if(ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
153
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
154
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
155
  curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
156
 
 
157
  if ($method == 'POST') {
158
  $headers[] = 'Content-Type: application/xml; charset=UTF-8';
 
159
  curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
 
160
  curl_setopt($curl,CURLOPT_POST,true);
161
  } elseif ($method == 'PUT') {
162
  if (is_file($data) and is_readable($data)) {
164
  curl_setopt($curl,CURLOPT_PUT,true);
165
  curl_setopt($curl,CURLOPT_INFILE,$datafilefd);
166
  curl_setopt($curl,CURLOPT_INFILESIZE,filesize($data));
167
+ } else {
168
+ throw new SugarSyncException('Is not a readable file:'. $data);
 
 
 
 
169
  }
170
  } elseif ($method == 'DELETE') {
171
  curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'DELETE');
174
  }
175
 
176
  // set headers
 
177
  curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
178
  curl_setopt($curl,CURLINFO_HEADER_OUT,self::DEBUG);
179
 
193
  throw new SugarSyncException('cUrl Error: '. curl_error($curl));
194
 
195
  curl_close($curl);
196
+ if (is_resource($datafilefd))
197
+ fclose($datafilefd);
198
 
199
  if ($curlgetinfo['http_code']>=200 and $curlgetinfo['http_code']<300) {
200
+ if (!empty($response) and $data == 'PLAIN')
201
+ return $response;
202
  if (!empty($response))
203
  return simplexml_load_string($response);
204
  } else {
213
  }
214
  }
215
 
216
+
217
+ public function chdir($folder,$root='') {
218
+ $folder=rtrim($folder,'/');
219
+ if (substr($folder,0,1)=='/' or empty($this->folder)) {
220
+ if (!empty($root))
221
+ $this->folder=$root;
222
+ else
223
+ throw new SugarSyncException('chdir: root folder must set!');
224
+ }
225
+ $folders=explode('/',$folder);
226
+ foreach ($folders as $dir) {
227
+ if ($dir=='..') {
228
+ $contents=$this->doCall($this->folder);
229
+ if (!empty($contents->parent))
230
+ $this->folder=$contents->parent;
231
+ } elseif (!empty($dir) and $dir!='.') {
232
+ $isdir=false;
233
+ $contents=$this->getcontents('folder');
234
+ foreach ($contents->collection as $collection) {
235
+ if (strtolower($collection->displayName)==strtolower($dir)) {
236
+ $isdir=true;
237
+ $this->folder=$collection->ref;
238
+ break;
239
+ }
240
+ }
241
+ if (!$isdir)
242
+ throw new SugarSyncException('chdir: Folder '. $folder.' not exitst');
243
+ }
244
+ }
245
+ return $this->folder;
246
+ }
247
+
248
+ public function mkdir($folder,$root='') {
249
+ $savefolder=$this->folder;
250
+ $folder=rtrim($folder,'/');
251
+ if (substr($folder,0,1)=='/' or empty($this->folder)) {
252
+ if (!empty($root))
253
+ $this->folder=$root;
254
+ else
255
+ throw new SugarSyncException('mkdir: root folder must set!');
256
+ }
257
+ $folders=explode('/',$folder);
258
+ foreach ($folders as $dir) {
259
+ if ($dir=='..') {
260
+ $contents=$this->doCall($this->folder);
261
+ if (!empty($contents->parent))
262
+ $this->folder=$contents->parent;
263
+ } elseif (!empty($dir) and $dir!='.') {
264
+ $isdir=false;
265
+ $contents=$this->getcontents('folder');
266
+ foreach ($contents->collection as $collection) {
267
+ if (strtolower($collection->displayName)==strtolower($dir)) {
268
+ $isdir=true;
269
+ $this->folder=$collection->ref;
270
+ break;
271
+ }
272
+ }
273
+ if (!$isdir) {
274
+ $request=$this->doCall($this->folder,'<?xml version="1.0" encoding="UTF-8"?><folder><displayName>'.utf8_encode($dir).'</displayName></folder>','POST');
275
+ $contents=$this->getcontents('folder');
276
+ foreach ($contents->collection as $collection) {
277
+ if (strtolower($collection->displayName)==strtolower($dir)) {
278
+ $isdir=true;
279
+ $this->folder=$collection->ref;
280
+ break;
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
286
+ $this->folder=$savefolder;
287
+ return true;
288
+ }
289
+
290
+
291
  public function user() {
292
+ return $this->doCall(self::API_URL .'/user');
 
293
  }
294
 
295
 
296
  public function get($url) {
297
+ return $this->doCall($url,'','GET');
298
+ }
299
+
300
+ public function download($url) {
301
+ return $this->doCall($url.'/data','PLAIN','GET');
302
  }
303
 
304
  public function delete($url) {
305
+ return $this->doCall($url,'','DELETE');
306
  }
307
 
308
 
309
+ public function getcontents($type='',$start=0,$max=500) {
310
  if (strtolower($type)=='folder' or strtolower($type)=='file')
311
  $parameters.='type='.strtolower($type);
312
  if (!empty($start) and is_integer($start)) {
321
  $parameters.='max='.$max;
322
  }
323
 
324
+ $request=$this->doCall($this->folder.'/contents?'.$parameters);
325
  return $request;
326
  }
327
 
328
+ public function upload($file,$name='') {
329
  if (empty($name))
330
  $name=basename($file);
 
331
  $xmlrequest ='<?xml version="1.0" encoding="UTF-8"?>';
332
  $xmlrequest.='<file>';
333
+ $xmlrequest.='<displayName>'.utf8_encode($name).'</displayName>';
334
+ if (!is_file($file)) {
335
+ $finfo = fopen($file,'r');
336
+ $xmlrequest.='<mediaType>'.mime_content_type($finfo).'</mediaType>';
337
+ fclose($finfo);
338
+ }
339
  $xmlrequest.='</file>';
340
+ $request=$this->doCall($this->folder,$xmlrequest,'POST');
341
+ $getfiles=$this->getcontents('file');
342
+ foreach ($getfiles->file as $getfile) {
343
+ if ($getfile->displayName==$name) {
344
+ $this->doCall($getfile->ref.'/data',$file,'PUT');
345
+ return $getfile->ref;
346
+ }
347
+ }
 
 
 
348
  }
349
 
350
  }
app/list-tables.php CHANGED
@@ -458,7 +458,7 @@ class BackWPup_Backups_Table extends WP_List_Table {
458
 
459
  switch($column_name) {
460
  case 'cb':
461
- $r .= '<th scope="row" class="check-column"><input type="checkbox" name="backupfiles[]" value="'. esc_attr($backup['file'].':'.$backup['jobid'].':'.$backup['type']) .'" /></th>';
462
  break;
463
  case 'backup':
464
  $dir=dirname($backup['file']);
@@ -478,9 +478,11 @@ class BackWPup_Backups_Table extends WP_List_Table {
478
  $r .= "<td $attributes><strong>".basename($backup['file'])."</strong><br />azure://".$jobvalue['msazureContainer']."/".$dir;
479
  } elseif ($backup['type']=='DROPBOX') {
480
  $r .= "<td $attributes><strong>".basename($backup['file'])."</strong><br />dropbox:/".$dir;
 
 
481
  }
482
  $actions = array();
483
- $actions['delete'] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url('admin.php?page=BackWPup&subpage=backups&action=delete&paged='.$this->get_pagenum().'&backupfiles[]='.esc_attr($backup['file'].':'.$backup['jobid'].':'.$backup['type']), 'bulk-backups') . "\" onclick=\"if ( confirm('" . esc_js(__("You are about to delete this Backup Archive. \n 'Cancel' to stop, 'OK' to delete.","backwpup")) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
484
  $actions['download'] = "<a href=\"" . wp_nonce_url($backup['downloadurl'], 'download-backup') . "\">" . __('Download','backwpup') . "</a>";
485
  $action_count = count($actions);
486
  $i = 0;
458
 
459
  switch($column_name) {
460
  case 'cb':
461
+ $r .= '<th scope="row" class="check-column"><input type="checkbox" name="backupfiles[]" value="'. esc_attr(urlencode($backup['file']).'|'.$backup['jobid'].'|'.$backup['type']) .'" /></th>';
462
  break;
463
  case 'backup':
464
  $dir=dirname($backup['file']);
478
  $r .= "<td $attributes><strong>".basename($backup['file'])."</strong><br />azure://".$jobvalue['msazureContainer']."/".$dir;
479
  } elseif ($backup['type']=='DROPBOX') {
480
  $r .= "<td $attributes><strong>".basename($backup['file'])."</strong><br />dropbox:/".$dir;
481
+ } elseif ($backup['type']=='SUGARSYNC') {
482
+ $r .= "<td $attributes><strong>".$backup['filename']."</strong><br />sugarsync://magicBriefcase/".$jobvalue['sugardir'];
483
  }
484
  $actions = array();
485
+ $actions['delete'] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url('admin.php?page=BackWPup&subpage=backups&action=delete&paged='.$this->get_pagenum().'&backupfiles[]='.esc_attr(urlencode($backup['file']).'|'.$backup['jobid'].'|'.$backup['type']), 'bulk-backups') . "\" onclick=\"if ( confirm('" . esc_js(__("You are about to delete this Backup Archive. \n 'Cancel' to stop, 'OK' to delete.","backwpup")) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
486
  $actions['download'] = "<a href=\"" . wp_nonce_url($backup['downloadurl'], 'download-backup') . "\">" . __('Download','backwpup') . "</a>";
487
  $action_count = count($actions);
488
  $i = 0;
app/options-edit-job.php CHANGED
@@ -6,6 +6,20 @@ if ( !defined('ABSPATH') )
6
  check_admin_referer('edit-job');
7
  global $wpdb;
8
  $jobid = (int) $_REQUEST['jobid'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  ?>
10
  <div class="wrap">
11
  <div id="icon-tools" class="icon32"><br /></div>
@@ -14,17 +28,11 @@ $jobid = (int) $_REQUEST['jobid'];
14
  <?PHP backwpup_option_submenues(); ?>
15
  <div class="clear"></div>
16
 
 
17
  <form method="post" action="">
18
  <input type="hidden" name="subpage" value="edit" />
19
  <input type="hidden" name="jobid" value="<?PHP echo $jobid;?>" />
20
- <?php
21
- wp_nonce_field('edit-job');
22
- $jobs=get_option('backwpup_jobs');
23
- $jobvalue=backwpup_check_job_vars($jobs[$jobid],$jobid);
24
- $todo=explode('+',$jobvalue['type']);
25
- $dests=explode(',',strtoupper(BACKWPUP_DESTS));
26
- ?>
27
-
28
  <div id="poststuff" class="metabox-holder has-right-sidebar">
29
  <div class="inner-sidebar">
30
  <div id="side-sortables" class="meta-box-sortables">
@@ -416,7 +424,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
416
 
417
  <?PHP if (in_array('DROPBOX',$dests) and function_exists('curl_exec') and function_exists('json_decode')) { ?>
418
  <div id="todropbox" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
419
- <h3 class="hndle"><span><?PHP _e('Backup to Dropbox','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://db.tt/MfxHKBd" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a></h3>
420
  <div class="inside">
421
  <b><?PHP _e('Login:','backwpup'); ?></b>&nbsp;
422
  <?PHP if (empty($jobvalue['dropetoken']) and empty($jobvalue['dropesecret'])) { ?>
@@ -439,6 +447,9 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
439
  <input id="sugaruser" name="sugaruser" type="text" value="<?PHP echo $jobvalue['sugaruser'];?>" class="large-text" /><br />
440
  <b><?PHP _e('Password:','backwpup'); ?></b><br />
441
  <input id="sugarpass" name="sugarpass" type="password" value="<?PHP echo base64_decode($jobvalue['sugarpass']);?>" class="large-text" /><br />
 
 
 
442
  <b><?PHP _e('Directory:','backwpup'); ?></b><br />
443
  <input name="sugardir" type="text" value="<?PHP echo $jobvalue['sugardir'];?>" class="large-text" /><br />
444
  <?PHP _e('Max. Backup Files in Folder:','backwpup'); ?><input name="sugarmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['sugarmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
6
  check_admin_referer('edit-job');
7
  global $wpdb;
8
  $jobid = (int) $_REQUEST['jobid'];
9
+ $jobs=get_option('backwpup_jobs');
10
+ if (empty($jobid)) { //generate a new id for new job
11
+ if (is_array($jobs)) {
12
+ foreach ($jobs as $jobkey => $jobvalue) {
13
+ if ($jobkey>$heighestid) $heighestid=$jobkey;
14
+ }
15
+ $jobid=$heighestid+1;
16
+ } else {
17
+ $jobid=1;
18
+ }
19
+ }
20
+ $jobvalue=backwpup_check_job_vars($jobs[$jobid],$jobid);
21
+ $todo=explode('+',$jobvalue['type']);
22
+ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
23
  ?>
24
  <div class="wrap">
25
  <div id="icon-tools" class="icon32"><br /></div>
28
  <?PHP backwpup_option_submenues(); ?>
29
  <div class="clear"></div>
30
 
31
+
32
  <form method="post" action="">
33
  <input type="hidden" name="subpage" value="edit" />
34
  <input type="hidden" name="jobid" value="<?PHP echo $jobid;?>" />
35
+ <?php wp_nonce_field('edit-job'); ?>
 
 
 
 
 
 
 
36
  <div id="poststuff" class="metabox-holder has-right-sidebar">
37
  <div class="inner-sidebar">
38
  <div id="side-sortables" class="meta-box-sortables">
424
 
425
  <?PHP if (in_array('DROPBOX',$dests) and function_exists('curl_exec') and function_exists('json_decode')) { ?>
426
  <div id="todropbox" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
427
+ <h3 class="hndle"><span><?PHP _e('Backup to Dropbox','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a name="dropbox" href="http://db.tt/MfxHKBd" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a></h3>
428
  <div class="inside">
429
  <b><?PHP _e('Login:','backwpup'); ?></b>&nbsp;
430
  <?PHP if (empty($jobvalue['dropetoken']) and empty($jobvalue['dropesecret'])) { ?>
447
  <input id="sugaruser" name="sugaruser" type="text" value="<?PHP echo $jobvalue['sugaruser'];?>" class="large-text" /><br />
448
  <b><?PHP _e('Password:','backwpup'); ?></b><br />
449
  <input id="sugarpass" name="sugarpass" type="password" value="<?PHP echo base64_decode($jobvalue['sugarpass']);?>" class="large-text" /><br />
450
+ <b><?PHP _e('Root:','backwpup'); ?></b><br />
451
+ <input id="sugarrootselected" name="sugarrootselected" type="hidden" value="<?PHP echo $jobvalue['sugarroot'];?>" />
452
+ <?PHP if (!empty($jobvalue['sugaruser']) and !empty($jobvalue['sugarpass'])) backwpup_get_sugarsync_root(array('sugaruser'=>$jobvalue['sugaruser'],'sugarpass'=>base64_decode($jobvalue['sugarpass']),'sugarrootselected'=>$jobvalue['sugarroot'])); ?><br />
453
  <b><?PHP _e('Directory:','backwpup'); ?></b><br />
454
  <input name="sugardir" type="text" value="<?PHP echo $jobvalue['sugardir'];?>" class="large-text" /><br />
455
  <?PHP _e('Max. Backup Files in Folder:','backwpup'); ?><input name="sugarmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['sugarmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
app/options-runnow-iframe.php CHANGED
@@ -21,5 +21,6 @@ if (file_exists(trim($_GET['wpabs']).'wp-load.php') and is_numeric(trim($_GET['j
21
  <?PHP
22
  } else {
23
  header("HTTP/1.0 404 Not Found");
 
24
  }
25
  ?>
21
  <?PHP
22
  } else {
23
  header("HTTP/1.0 404 Not Found");
24
+ die();
25
  }
26
  ?>
app/options-save.php CHANGED
@@ -57,7 +57,7 @@ function backwpup_job_operations($action) {
57
  $jobs=get_option('backwpup_jobs');
58
  $cfg=get_option('backwpup'); //Load Settings
59
 
60
- if (is_file($jobs[$jobid]['logfile'])) {
61
  $logheader=backwpup_read_logheader($jobs[$jobid]['logfile']); //read waring count from log header
62
  $fd=fopen($jobs[$jobid]['logfile'],"a+");
63
  fwrite($fd,"<span style=\"background-color:c3c3c3;\" title=\"[Line: ".__LINE__."|File: ".basename(__FILE__)."\">".date_i18n('Y-m-d H:i.s').":</span> <span style=\"background-color:red;\">".__('[ERROR]','backwpup')." ".__('Backup Cleand by User!!!','backwpup')."</span><br />\n");
@@ -77,7 +77,7 @@ function backwpup_job_operations($action) {
77
  }
78
  fclose($fd);
79
  }
80
- if ($cfg['gzlogs'] and function_exists('gzopen') and file_exists($jobs[$jobid]['logfile'])) {
81
  $fd=fopen($jobs[$jobid]['logfile'],'r');
82
  $zd=gzopen($jobs[$jobid]['logfile'].'.gz','w9');
83
  while (!feof($fd)) {
@@ -90,11 +90,15 @@ function backwpup_job_operations($action) {
90
  }
91
  $jobs[$jobid]['cronnextrun']=backwpup_cron_next($jobs[$jobid]['cron']);
92
  $jobs[$jobid]['stoptime']=current_time('timestamp');
93
- $jobs[$jobid]['lastrun']=$jobs[$jobid]['starttime'];
94
- $jobs[$jobid]['lastruntime']=$jobs[$jobid]['stoptime']-$jobs[$jobid]['starttime'];
95
- $jobs[$jobid]['starttime']='';
96
- $jobs[$jobid]['logfile']='';
97
- $jobs[$jobid]['lastlogfile']=$jobs[$jobid]['logfile'];
 
 
 
 
98
  update_option('backwpup_jobs',$jobs);
99
  break;
100
  }
@@ -144,7 +148,7 @@ function backwpup_backups_operations($action) {
144
  check_admin_referer('bulk-backups');
145
  $i=0;
146
  foreach ($_REQUEST['backupfiles'] as $backupfile) {
147
- list($deletebackups[$i]['file'],$deletebackups[$i]['jobid'],$deletebackups[$i]['type'])=explode(':',$backupfile,3);
148
  $i++;
149
  }
150
  }
@@ -155,39 +159,41 @@ function backwpup_backups_operations($action) {
155
  }
156
 
157
  $jobs=get_option('backwpup_jobs'); //Load jobs
 
158
  if (extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll')) {
159
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
160
- if (!class_exists('Microsoft_WindowsAzure_Storage_Blob'))
161
  require_once 'Microsoft/WindowsAzure/Storage/Blob.php';
162
- if (!class_exists('CFRuntime'))
163
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
164
- if (!class_exists('CF_Authentication'))
165
  require_once(plugin_dir_path(__FILE__).'libs/rackspace/cloudfiles.php');
166
- if (!class_exists('Dropbox'))
167
  require_once(dirname(__FILE__).'/libs/dropbox/dropbox.php');
 
 
168
  }
169
 
170
- $num=0;
171
  foreach ($deletebackups as $backups) {
172
  $jobvalue=backwpup_check_job_vars($jobs[$backups['jobid']],$backups['jobid']); //Check job values
173
  if ($backups['type']=='FOLDER') {
174
  if (is_file($backups['file']))
175
  unlink($backups['file']);
176
- } elseif ($backups['type']=='S3') {
177
  if (class_exists('AmazonS3')) {
178
  if (!empty($jobvalue['awsAccessKey']) and !empty($jobvalue['awsSecretKey']) and !empty($jobvalue['awsBucket'])) {
179
  $s3 = new AmazonS3($jobvalue['awsAccessKey'], $jobvalue['awsSecretKey']);
180
  $s3->delete_object($jobvalue['awsBucket'],$backups['file']);
181
  }
182
  }
183
- } elseif ($backups['type']=='MSAZURE') {
184
  if (class_exists('Microsoft_WindowsAzure_Storage_Blob')) {
185
  if (!empty($jobvalue['msazureHost']) and !empty($jobvalue['msazureAccName']) and !empty($jobvalue['msazureKey']) and !empty($jobvalue['msazureContainer'])) {
186
  $storageClient = new Microsoft_WindowsAzure_Storage_Blob($jobvalue['msazureHost'],$jobvalue['msazureAccName'],$jobvalue['msazureKey']);
187
  $storageClient->deleteBlob($jobvalue['msazureContainer'],$backups['file']);
188
  }
189
  }
190
- } elseif ($backups['type']=='DROPBOX') {
191
  if (class_exists('Dropbox')) {
192
  if (!empty($jobvalue['dropetoken']) and !empty($jobvalue['dropesecret'])) {
193
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
@@ -195,7 +201,14 @@ function backwpup_backups_operations($action) {
195
  $dropbox->fileopsDelete($backups['file']);
196
  }
197
  }
198
- }elseif ($backups['type']=='RSC') {
 
 
 
 
 
 
 
199
  if (class_exists('CF_Authentication')) {
200
  if (!empty($jobvalue['rscUsername']) and !empty($jobvalue['rscAPIKey']) and !empty($jobvalue['rscContainer'])) {
201
  $auth = new CF_Authentication($jobvalue['rscUsername'], $jobvalue['rscAPIKey']);
@@ -238,7 +251,6 @@ function backwpup_backups_operations($action) {
238
  }
239
  }
240
  }
241
- $num++;
242
  }
243
  update_option('backwpup_backups_chache',backwpup_get_backup_files());
244
  break;
@@ -314,6 +326,30 @@ function backwpup_backups_operations($action) {
314
  die($e->getMessage());
315
  }
316
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
317
  case 'downloadmsazure': //Download Microsoft Azure Backup
318
  check_admin_referer('download-backup');
319
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
@@ -413,17 +449,6 @@ function backwpup_save_job() { //Save Job settings
413
  check_admin_referer('edit-job');
414
  $jobs=get_option('backwpup_jobs'); //Load Settings
415
 
416
- if (empty($jobid)) { //generate a new id for new job
417
- if (is_array($jobs)) {
418
- foreach ($jobs as $jobkey => $jobvalue) {
419
- if ($jobkey>$heighestid) $heighestid=$jobkey;
420
- }
421
- $jobid=$heighestid+1;
422
- } else {
423
- $jobid=1;
424
- }
425
- }
426
-
427
  if ($jobs[$jobid]['type']!=$_POST['type']) // set type to save
428
  $savetype=explode('+',$jobs[$jobid]['type']);
429
  else
@@ -510,6 +535,7 @@ function backwpup_save_job() { //Save Job settings
510
  $jobs[$jobid]['sugaruser']=$_POST['sugaruser'];
511
  $jobs[$jobid]['sugarpass']=base64_encode($_POST['sugarpass']);
512
  $jobs[$jobid]['sugardir']=stripslashes($_POST['sugardir']);
 
513
  $jobs[$jobid]['sugarmaxbackups']=(int)$_POST['sugarmaxbackups'];
514
  $jobs[$jobid]['rscUsername']=$_POST['rscUsername'];
515
  $jobs[$jobid]['rscAPIKey']=$_POST['rscAPIKey'];
@@ -574,7 +600,7 @@ function backwpup_save_job() { //Save Job settings
574
  // request request tokens
575
  $response = $dropbox->oAuthRequestToken();
576
  // save job id and referer
577
- update_option('backwpup_dropboxrequest',array('jobid'=>$_GET['jobid'],'oAuthRequestToken' => $response['oauth_token'],'oAuthRequestTokenSecret' => $response['oauth_token_secret'],'referer'=>$_ENV["HTTP_REFERER"]));
578
  // let the user authorize (user will be redirected)
579
  $response = $dropbox->oAuthAuthorize($response['oauth_token'], plugins_url('dropbox-auth.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH));
580
  }
57
  $jobs=get_option('backwpup_jobs');
58
  $cfg=get_option('backwpup'); //Load Settings
59
 
60
+ if (is_file($jobs[$jobid]['logfile']) and substr($jobs[$jobid]['logfile'],-3)!='.gz') {
61
  $logheader=backwpup_read_logheader($jobs[$jobid]['logfile']); //read waring count from log header
62
  $fd=fopen($jobs[$jobid]['logfile'],"a+");
63
  fwrite($fd,"<span style=\"background-color:c3c3c3;\" title=\"[Line: ".__LINE__."|File: ".basename(__FILE__)."\">".date_i18n('Y-m-d H:i.s').":</span> <span style=\"background-color:red;\">".__('[ERROR]','backwpup')." ".__('Backup Cleand by User!!!','backwpup')."</span><br />\n");
77
  }
78
  fclose($fd);
79
  }
80
+ if ($cfg['gzlogs'] and function_exists('gzopen') and file_exists($jobs[$jobid]['logfile']) and substr($jobs[$jobid]['logfile'],-3)!='.gz') {
81
  $fd=fopen($jobs[$jobid]['logfile'],'r');
82
  $zd=gzopen($jobs[$jobid]['logfile'].'.gz','w9');
83
  while (!feof($fd)) {
90
  }
91
  $jobs[$jobid]['cronnextrun']=backwpup_cron_next($jobs[$jobid]['cron']);
92
  $jobs[$jobid]['stoptime']=current_time('timestamp');
93
+ if (!empty($jobs[$jobid]['starttime'])) {
94
+ $jobs[$jobid]['lastrun']=$jobs[$jobid]['starttime'];
95
+ $jobs[$jobid]['lastruntime']=$jobs[$jobid]['stoptime']-$jobs[$jobid]['starttime'];
96
+ $jobs[$jobid]['starttime']='';
97
+ }
98
+ if (!empty($jobs[$jobid]['logfile'])) {
99
+ $jobs[$jobid]['lastlogfile']=$jobs[$jobid]['logfile'];
100
+ $jobs[$jobid]['logfile']='';
101
+ }
102
  update_option('backwpup_jobs',$jobs);
103
  break;
104
  }
148
  check_admin_referer('bulk-backups');
149
  $i=0;
150
  foreach ($_REQUEST['backupfiles'] as $backupfile) {
151
+ list($deletebackups[$i]['file'],$deletebackups[$i]['jobid'],$deletebackups[$i]['type'])=explode('|',$backupfile,3);
152
  $i++;
153
  }
154
  }
159
  }
160
 
161
  $jobs=get_option('backwpup_jobs'); //Load jobs
162
+ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
163
  if (extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll')) {
164
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
165
+ if (!class_exists('Microsoft_WindowsAzure_Storage_Blob') and in_array('MSAZURE',$dests))
166
  require_once 'Microsoft/WindowsAzure/Storage/Blob.php';
167
+ if (!class_exists('CFRuntime') and in_array('S3',$dests))
168
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
169
+ if (!class_exists('CF_Authentication') and in_array('RSC',$dests))
170
  require_once(plugin_dir_path(__FILE__).'libs/rackspace/cloudfiles.php');
171
+ if (!class_exists('Dropbox') and in_array('DROPBOX',$dests))
172
  require_once(dirname(__FILE__).'/libs/dropbox/dropbox.php');
173
+ if (!class_exists('SugarSync') and in_array('SUGARSYNC',$dests))
174
+ require_once (dirname(__FILE__).'/libs/sugarsync.php');
175
  }
176
 
 
177
  foreach ($deletebackups as $backups) {
178
  $jobvalue=backwpup_check_job_vars($jobs[$backups['jobid']],$backups['jobid']); //Check job values
179
  if ($backups['type']=='FOLDER') {
180
  if (is_file($backups['file']))
181
  unlink($backups['file']);
182
+ } elseif ($backups['type']=='S3' and in_array('S3',$dests)) {
183
  if (class_exists('AmazonS3')) {
184
  if (!empty($jobvalue['awsAccessKey']) and !empty($jobvalue['awsSecretKey']) and !empty($jobvalue['awsBucket'])) {
185
  $s3 = new AmazonS3($jobvalue['awsAccessKey'], $jobvalue['awsSecretKey']);
186
  $s3->delete_object($jobvalue['awsBucket'],$backups['file']);
187
  }
188
  }
189
+ } elseif ($backups['type']=='MSAZURE' and in_array('MSAZURE',$dests)) {
190
  if (class_exists('Microsoft_WindowsAzure_Storage_Blob')) {
191
  if (!empty($jobvalue['msazureHost']) and !empty($jobvalue['msazureAccName']) and !empty($jobvalue['msazureKey']) and !empty($jobvalue['msazureContainer'])) {
192
  $storageClient = new Microsoft_WindowsAzure_Storage_Blob($jobvalue['msazureHost'],$jobvalue['msazureAccName'],$jobvalue['msazureKey']);
193
  $storageClient->deleteBlob($jobvalue['msazureContainer'],$backups['file']);
194
  }
195
  }
196
+ } elseif ($backups['type']=='DROPBOX' and in_array('DROPBOX',$dests)) {
197
  if (class_exists('Dropbox')) {
198
  if (!empty($jobvalue['dropetoken']) and !empty($jobvalue['dropesecret'])) {
199
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
201
  $dropbox->fileopsDelete($backups['file']);
202
  }
203
  }
204
+ } elseif ($backups['type']=='SUGARSYNC' and in_array('SUGARSYNC',$dests)) {
205
+ if (class_exists('SugarSync')) {
206
+ if (!empty($jobvalue['sugaruser']) and !empty($jobvalue['sugarpass'])) {
207
+ $sugarsync = new SugarSync($jobvalue['sugaruser'],base64_decode($jobvalue['sugarpass']),BACKWPUP_SUGARSYNC_ACCESSKEY, BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY);
208
+ $sugarsync->delete(urldecode($backups['file']));
209
+ }
210
+ }
211
+ } elseif ($backups['type']=='RSC' and in_array('RSC',$dests)) {
212
  if (class_exists('CF_Authentication')) {
213
  if (!empty($jobvalue['rscUsername']) and !empty($jobvalue['rscAPIKey']) and !empty($jobvalue['rscContainer'])) {
214
  $auth = new CF_Authentication($jobvalue['rscUsername'], $jobvalue['rscAPIKey']);
251
  }
252
  }
253
  }
 
254
  }
255
  update_option('backwpup_backups_chache',backwpup_get_backup_files());
256
  break;
326
  die($e->getMessage());
327
  }
328
  break;
329
+ case 'downloadsugarsync': //Download Dropbox Backup
330
+ check_admin_referer('download-backup');
331
+ require_once(dirname(__FILE__).'/libs/sugarsync.php');
332
+ $jobs=get_option('backwpup_jobs');
333
+ $jobid=$_GET['jobid'];
334
+ try {
335
+ $sugarsync = new SugarSync($jobs[$jobid]['sugaruser'],base64_decode($jobs[$jobid]['sugarpass']),BACKWPUP_SUGARSYNC_ACCESSKEY, BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY);
336
+ $response=$sugarsync->get(urldecode($_GET['file']));
337
+ header("Pragma: public");
338
+ header("Expires: 0");
339
+ header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
340
+ header("Content-Type: ".(string)$response->mediaType);
341
+ header("Content-Type: application/force-download");
342
+ header("Content-Type: application/octet-stream");
343
+ header("Content-Type: application/download");
344
+ header("Content-Disposition: attachment; filename=".(string)$response->displayName.";");
345
+ header("Content-Transfer-Encoding: binary");
346
+ header("Content-Length: ".(int)$response->size);
347
+ echo $sugarsync->download(urldecode($_GET['file']));
348
+ die();
349
+ } catch (Exception $e) {
350
+ die($e->getMessage());
351
+ }
352
+ break;
353
  case 'downloadmsazure': //Download Microsoft Azure Backup
354
  check_admin_referer('download-backup');
355
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
449
  check_admin_referer('edit-job');
450
  $jobs=get_option('backwpup_jobs'); //Load Settings
451
 
 
 
 
 
 
 
 
 
 
 
 
452
  if ($jobs[$jobid]['type']!=$_POST['type']) // set type to save
453
  $savetype=explode('+',$jobs[$jobid]['type']);
454
  else
535
  $jobs[$jobid]['sugaruser']=$_POST['sugaruser'];
536
  $jobs[$jobid]['sugarpass']=base64_encode($_POST['sugarpass']);
537
  $jobs[$jobid]['sugardir']=stripslashes($_POST['sugardir']);
538
+ $jobs[$jobid]['sugarroot']=$_POST['sugarroot'];
539
  $jobs[$jobid]['sugarmaxbackups']=(int)$_POST['sugarmaxbackups'];
540
  $jobs[$jobid]['rscUsername']=$_POST['rscUsername'];
541
  $jobs[$jobid]['rscAPIKey']=$_POST['rscAPIKey'];
600
  // request request tokens
601
  $response = $dropbox->oAuthRequestToken();
602
  // save job id and referer
603
+ update_option('backwpup_dropboxrequest',array('jobid'=>$jobid,'oAuthRequestToken' => $response['oauth_token'],'oAuthRequestTokenSecret' => $response['oauth_token_secret']));
604
  // let the user authorize (user will be redirected)
605
  $response = $dropbox->oAuthAuthorize($response['oauth_token'], plugins_url('dropbox-auth.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH));
606
  }
app/options-view_log-iframe.php CHANGED
@@ -9,5 +9,6 @@ if (file_exists(trim($_GET['wpabs']).'wp-load.php') and file_exists(trim($_GET['
9
  }
10
  } else {
11
  header("HTTP/1.0 404 Not Found");
 
12
  }
13
  ?>
9
  }
10
  } else {
11
  header("HTTP/1.0 404 Not Found");
12
+ die();
13
  }
14
  ?>
app/php-functions.php CHANGED
@@ -291,13 +291,93 @@ function backwpup_cron() {
291
 
292
  //DoJob
293
  function backwpup_dojob($jobid) {
294
- global $backwpup_logfile;
295
  if (empty($jobid))
296
  return false;
297
  require_once(dirname(__FILE__).'/backwpup_dojob.php');
298
  $backwpup_dojob= new backwpup_dojob($jobid);
299
- unset($backwpup_dojob);
300
- return $backwpup_logfile;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  }
302
 
303
  //file size
291
 
292
  //DoJob
293
  function backwpup_dojob($jobid) {
 
294
  if (empty($jobid))
295
  return false;
296
  require_once(dirname(__FILE__).'/backwpup_dojob.php');
297
  $backwpup_dojob= new backwpup_dojob($jobid);
298
+
299
+ //run job parts
300
+ foreach($backwpup_dojob->todo as $key => $value) {
301
+ switch ($value) {
302
+ case 'DB':
303
+ $backwpup_dojob->dump_db();
304
+ break;
305
+ case 'WPEXP':
306
+ $backwpup_dojob->export_wp();
307
+ break;
308
+ case 'FILE':
309
+ $backwpup_dojob->file_list();
310
+ break;
311
+ }
312
+ }
313
+
314
+ if (isset($backwpup_dojob->filelist[0][79001])) { // Make backup file
315
+ if ($backwpup_dojob->backupfileformat==".zip")
316
+ $backwpup_dojob->zip_files();
317
+ elseif ($backwpup_dojob->backupfileformat==".tar.gz" or $backwpup_dojob->backupfileformat==".tar.bz2" or $backwpup_dojob->backupfileformat==".tar")
318
+ $backwpup_dojob->tar_pack_files();
319
+ }
320
+
321
+ if (is_file($backwpup_dojob->backupdir.$backwpup_dojob->backupfile)) { // Put backup file to destination
322
+ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
323
+ if (!empty($backwpup_dojob->job['mailaddress'])) {
324
+ $backwpup_dojob->destination_mail();
325
+ }
326
+ if (in_array('FTP',$dests) and !empty($backwpup_dojob->job['ftphost']) and !empty($backwpup_dojob->job['ftpuser']) and !empty($backwpup_dojob->job['ftppass'])) {
327
+ if (function_exists('ftp_connect'))
328
+ $backwpup_dojob->destination_ftp();
329
+ else
330
+ trigger_error(__('FTP extension needed for FTP!','backwpup'),E_USER_ERROR);
331
+ }
332
+ if (in_array('DROPBOX',$dests) and !empty($backwpup_dojob->job['dropetoken']) and !empty($backwpup_dojob->job['dropesecret'])) {
333
+ if (function_exists('curl_exec') and function_exists('json_decode'))
334
+ $backwpup_dojob->destination_dropbox();
335
+ else
336
+ trigger_error(__('Curl and Json extensions needed for DropBox!','backwpup'),E_USER_ERROR);
337
+ }
338
+ if (in_array('SUGARSYNC',$dests) and !empty($backwpup_dojob->job['sugaruser']) and !empty($backwpup_dojob->job['sugarpass'])) {
339
+ if (function_exists('curl_exec') )
340
+ $backwpup_dojob->destination_sugarsync();
341
+ else
342
+ trigger_error(__('Curl and Json extensions needed for DropBox!','backwpup'),E_USER_ERROR);
343
+ }
344
+ if (in_array('S3',$dests) and !empty($backwpup_dojob->job['awsAccessKey']) and !empty($backwpup_dojob->job['awsSecretKey']) and !empty($backwpup_dojob->job['awsBucket'])) {
345
+ if (function_exists('curl_exec'))
346
+ $backwpup_dojob->destination_s3();
347
+ else
348
+ trigger_error(__('Curl extension needed for Amazon S3!','backwpup'),E_USER_ERROR);
349
+ }
350
+ if (in_array('RSC',$dests) and !empty($backwpup_dojob->job['rscUsername']) and !empty($backwpup_dojob->job['rscAPIKey']) and !empty($backwpup_dojob->job['rscContainer'])) {
351
+ if (function_exists('curl_exec'))
352
+ $backwpup_dojob->destination_rsc();
353
+ else
354
+ trigger_error(__('Curl extension needed for RackSpaceCloud!','backwpup'),E_USER_ERROR);
355
+ }
356
+ if (in_array('MSAZURE',$dests) and !empty($backwpup_dojob->job['msazureHost']) and !empty($backwpup_dojob->job['msazureAccName']) and !empty($backwpup_dojob->job['msazureKey']) and !empty($backwpup_dojob->job['msazureContainer'])) {
357
+ if (function_exists('curl_exec'))
358
+ $backwpup_dojob->destination_msazure();
359
+ else
360
+ trigger_error(__('Curl extension needed for Microsoft Azure!','backwpup'),E_USER_ERROR);
361
+ }
362
+ if (!empty($backwpup_dojob->job['backupdir'])) {
363
+ $backwpup_dojob->destination_dir();
364
+ }
365
+ }
366
+
367
+ foreach($backwpup_dojob->todo as $key => $value) {
368
+ switch ($value) {
369
+ case 'CHECK':
370
+ $backwpup_dojob->check_db();
371
+ break;
372
+ case 'OPTIMIZE':
373
+ $backwpup_dojob->optimize_db();
374
+ break;
375
+ }
376
+ }
377
+
378
+ $backwpup_dojob->job_end();
379
+
380
+ return $backwpup_dojob->logdir.$backwpup_dojob->logfile;
381
  }
382
 
383
  //file size
app/php5-functions.php CHANGED
@@ -283,6 +283,9 @@ function backwpup_check_job_vars($jobsettings,$jobid='') {
283
 
284
  if (!isset($jobsettings['sugarpass']) or !is_string($jobsettings['sugarpass']))
285
  $jobsettings['sugarpass']='';
 
 
 
286
 
287
  if (!isset($jobsettings['sugardir']) or !is_string($jobsettings['sugardir']) or $jobsettings['sugardir']=='/')
288
  $jobsettings['sugardir']='';
@@ -319,6 +322,8 @@ function backwpup_get_backup_files($onlyjobid='') {
319
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
320
  if (!class_exists('Dropbox') and function_exists('json_decode'))
321
  require_once(dirname(__FILE__).'/libs/dropbox/dropbox.php');
 
 
322
  }
323
 
324
  foreach ($jobs as $jobid => $jobvalue) { //go job by job
@@ -359,7 +364,7 @@ function backwpup_get_backup_files($onlyjobid='') {
359
  $contents = $dropbox->metadata($jobvalue['dropedir']);
360
  if (is_array($contents)) {
361
  foreach ($contents['contents'] as $object) {
362
- if ($object['is_dir']!=true and (strtolower(substr($object['path'],-4))=='.zip' or strtolower(substr($object['path'],-4))=='.tar' or strtolower(substr($object['path'],-7))=='.tar.gz' or strtolower(substr($$object['path'],-8))=='.tar.bz2')) {
363
  $files[$filecounter]['type']='DROPBOX';
364
  $files[$filecounter]['jobid']=$jobid;
365
  $files[$filecounter]['file']=$object['path'];
@@ -376,6 +381,32 @@ function backwpup_get_backup_files($onlyjobid='') {
376
  }
377
  }
378
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  //Get files/filinfo from S3
380
  if (class_exists('AmazonS3') and in_array('S3',$dests) and !in_array($jobvalue['awsAccessKey'].'|'.$jobvalue['awsBucket'].'|'.$jobvalue['awsdir'],$donefolders)) {
381
  if (!empty($jobvalue['awsAccessKey']) and !empty($jobvalue['awsSecretKey']) and !empty($jobvalue['awsBucket'])) {
@@ -543,7 +574,7 @@ function backwpup_get_aws_buckets($args='') {
543
  else
544
  return;
545
  }
546
- if ($buckets->status>=200 and $buckets->status<300) {
547
  echo '<span id="awsBucket" style="color:red;">'.__('S3 Message:','backwpup').' '.$buckets->status.': '.$buckets->body->Message.'</span>';
548
  if ($ajax)
549
  die();
@@ -691,5 +722,65 @@ function backwpup_get_msazure_container($args='') {
691
  die();
692
  else
693
  return;
694
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
  ?>
283
 
284
  if (!isset($jobsettings['sugarpass']) or !is_string($jobsettings['sugarpass']))
285
  $jobsettings['sugarpass']='';
286
+
287
+ if (!isset($jobsettings['sugarroot']) or !is_string($jobsettings['sugarroot']))
288
+ $jobsettings['sugarroot']='';
289
 
290
  if (!isset($jobsettings['sugardir']) or !is_string($jobsettings['sugardir']) or $jobsettings['sugardir']=='/')
291
  $jobsettings['sugardir']='';
322
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
323
  if (!class_exists('Dropbox') and function_exists('json_decode'))
324
  require_once(dirname(__FILE__).'/libs/dropbox/dropbox.php');
325
+ if (!class_exists('SugarSync'))
326
+ require_once (dirname(__FILE__).'/libs/sugarsync.php');
327
  }
328
 
329
  foreach ($jobs as $jobid => $jobvalue) { //go job by job
364
  $contents = $dropbox->metadata($jobvalue['dropedir']);
365
  if (is_array($contents)) {
366
  foreach ($contents['contents'] as $object) {
367
+ if ($object['is_dir']!=true and (strtolower(substr($object['path'],-4))=='.zip' or strtolower(substr($object['path'],-4))=='.tar' or strtolower(substr($object['path'],-7))=='.tar.gz' or strtolower(substr($object['path'],-8))=='.tar.bz2')) {
368
  $files[$filecounter]['type']='DROPBOX';
369
  $files[$filecounter]['jobid']=$jobid;
370
  $files[$filecounter]['file']=$object['path'];
381
  }
382
  }
383
  }
384
+ //Get files/filinfo from Sugarsync
385
+ if (class_exists('SugarSync') and in_array('SUGARSYNC',$dests) and !in_array($jobvalue['sugaruser'].'|'.base64_decode($jobvalue['sugarpass']).'|'.$jobvalue['sugardir'],$donefolders)) {
386
+ if (!empty($jobvalue['sugarpass']) and !empty($jobvalue['sugarpass'])) {
387
+ try {
388
+ $sugarsync = new SugarSync($jobvalue['sugaruser'],base64_decode($jobvalue['sugarpass']),BACKWPUP_SUGARSYNC_ACCESSKEY, BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY);
389
+ $sugarsync->chdir($jobvalue['sugardir'],$jobvalue['sugarroot']);
390
+ $getfiles=$sugarsync->getcontents('file');
391
+ if (is_object($getfiles)) {
392
+ foreach ($getfiles->file as $getfile) {
393
+ if (strtolower(substr($getfile->displayName,-4))=='.zip' or strtolower(substr($getfile->displayName,-4))=='.tar' or strtolower(substr($getfile->displayName,-7))=='.tar.gz' or strtolower(substr($getfile->displayName,-8))=='.tar.bz2') {
394
+ $files[$filecounter]['type']='SUGARSYNC';
395
+ $files[$filecounter]['jobid']=$jobid;
396
+ $files[$filecounter]['file']= (string) $getfile->ref;
397
+ $files[$filecounter]['filename']=utf8_decode((string) $getfile->displayName);
398
+ $files[$filecounter]['downloadurl']='admin.php?page=BackWPup&subpage=backups&action=downloadsugarsync&file='.(string) $getfile->ref.'&jobid='.$jobid;
399
+ $files[$filecounter]['filesize']=(int) $getfile->size;
400
+ $files[$filecounter]['time']=strtotime((string) $getfile->lastModified);
401
+ $filecounter++;
402
+ }
403
+ }
404
+ }
405
+ $donefolders[]=$jobvalue['sugaruser'].'|'.base64_decode($jobvalue['sugarpass']).'|'.$jobvalue['sugardir'];
406
+ } catch (Exception $e) {
407
+ }
408
+ }
409
+ }
410
  //Get files/filinfo from S3
411
  if (class_exists('AmazonS3') and in_array('S3',$dests) and !in_array($jobvalue['awsAccessKey'].'|'.$jobvalue['awsBucket'].'|'.$jobvalue['awsdir'],$donefolders)) {
412
  if (!empty($jobvalue['awsAccessKey']) and !empty($jobvalue['awsSecretKey']) and !empty($jobvalue['awsBucket'])) {
574
  else
575
  return;
576
  }
577
+ if ($buckets->status<200 and $buckets->status>=300) {
578
  echo '<span id="awsBucket" style="color:red;">'.__('S3 Message:','backwpup').' '.$buckets->status.': '.$buckets->body->Message.'</span>';
579
  if ($ajax)
580
  die();
722
  die();
723
  else
724
  return;
725
+ }
726
+
727
+ //ajax/normal get SugarSync roots select box
728
+ function backwpup_get_sugarsync_root($args='') {
729
+ if (is_array($args)) {
730
+ extract($args);
731
+ $ajax=false;
732
+ } else {
733
+ $sugaruser=$_POST['sugaruser'];
734
+ $sugarpass=$_POST['sugarpass'];
735
+ $sugarrootselected=$_POST['sugarrootselected'];
736
+ $ajax=true;
737
+ }
738
+
739
+ if (!class_exists('SugarSync'))
740
+ require_once(dirname(__FILE__).'/libs/sugarsync.php');
741
+
742
+ if (empty($sugaruser)) {
743
+ echo '<span id="sugarroot" style="color:red;">'.__('Missing Username!','backwpup').'</span>';
744
+ if ($ajax)
745
+ die();
746
+ else
747
+ return;
748
+ }
749
+ if (empty($sugarpass)) {
750
+ echo '<span id="sugarroot" style="color:red;">'.__('Missing Password!','backwpup').'</span>';
751
+ if ($ajax)
752
+ die();
753
+ else
754
+ return;
755
+ }
756
+
757
+ try {
758
+ $sugarsync = new SugarSync($sugaruser,$sugarpass,BACKWPUP_SUGARSYNC_ACCESSKEY, BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY);
759
+ $user=$sugarsync->user();
760
+ $syncfolders=$sugarsync->get($user->syncfolders);
761
+ } catch (Exception $e) {
762
+ echo '<span id="sugarroot" style="color:red;">'.__($e->getMessage(),'backwpup').'</span>';
763
+ if ($ajax)
764
+ die();
765
+ else
766
+ return;
767
+ }
768
+
769
+ if (!is_object($syncfolders)) {
770
+ echo '<span id="sugarroot" style="color:red;">'.__('No Syncfolders found!','backwpup').'</span>';
771
+ if ($ajax)
772
+ die();
773
+ else
774
+ return;
775
+ }
776
+ echo '<select name="sugarroot" id="sugarroot">';
777
+ foreach ($syncfolders->collection as $roots) {
778
+ echo "<option ".selected(strtolower($sugarrootselected),strtolower($roots->ref),false)." value=\"".$roots->ref."\">".$roots->displayName."</option>";
779
+ }
780
+ echo '</select>';
781
+ if ($ajax)
782
+ die();
783
+ else
784
+ return;
785
+ }
786
  ?>
app/wp_xml_export.php CHANGED
@@ -3,11 +3,13 @@ if (file_exists(trim($_GET['wpabs']).'wp-load.php')) {
3
  require_once(trim($_GET['wpabs']).'wp-load.php'); /** Setup WordPress environment */
4
  } else {
5
  header("HTTP/1.0 404 Not Found");
 
6
  }
7
- if ($_GET['_nonce']==substr(md5(md5(SECURE_AUTH_KEY)),10,10)) {
8
  require_once(trim($_GET['wpabs']).'wp-admin/includes/export.php');
9
  export_wp();
10
  } else {
11
  header("HTTP/1.0 404 Not Found");
 
12
  }
13
  ?>
3
  require_once(trim($_GET['wpabs']).'wp-load.php'); /** Setup WordPress environment */
4
  } else {
5
  header("HTTP/1.0 404 Not Found");
6
+ die();
7
  }
8
+ if (!wp_verify_nonce($_GET['_nonce'], 'backwpup-xmlexport')) {
9
  require_once(trim($_GET['wpabs']).'wp-admin/includes/export.php');
10
  export_wp();
11
  } else {
12
  header("HTTP/1.0 404 Not Found");
13
+ die();
14
  }
15
  ?>
backwpup.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: BackWPup
4
  Plugin URI: http://danielhuesken.de/portfolio/backwpup/
5
  Description: Backup and more of your WordPress Blog Database and Files.
6
  Author: Daniel H&uuml;sken
7
- Version: 1.6.2
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
@@ -34,15 +34,18 @@ if ( !defined('ABSPATH') )
34
  //Set plugin dirname
35
  define('BACKWPUP_PLUGIN_BASEDIR', dirname(plugin_basename(__FILE__)));
36
  //Set Plugin Version
37
- define('BACKWPUP_VERSION', '1.6.2');
38
  //Set User Capability
39
  define('BACKWPUP_USER_CAPABILITY', '10');
40
  //Set useable destinations
41
  if (!defined('BACKWPUP_DESTS'))
42
- define('BACKWPUP_DESTS', 'S3,RSC,FTP,DROPBOX,MSAZURE');
43
  //Set Dropbox Aplication Keys
44
  define('BACKWPUP_DROPBOX_APP_KEY', 'q2jbt0unkkc54u2');
45
  define('BACKWPUP_DROPBOX_APP_SECRET', 't5hlbxtz473hchy');
 
 
 
46
  //load Text Domain
47
  load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_BASEDIR.'/lang');
48
  //Load functions file
@@ -71,6 +74,7 @@ if (backwpup_env_checks()) {
71
  add_action('wp_ajax_backwpup_get_aws_buckets', 'backwpup_get_aws_buckets');
72
  add_action('wp_ajax_backwpup_get_rsc_container', 'backwpup_get_rsc_container');
73
  add_action('wp_ajax_backwpup_get_msazure_container', 'backwpup_get_msazure_container');
 
74
  //Disabele WP_Corn
75
  $cfg=get_option('backwpup');
76
  if ($cfg['disablewpcron'])
4
  Plugin URI: http://danielhuesken.de/portfolio/backwpup/
5
  Description: Backup and more of your WordPress Blog Database and Files.
6
  Author: Daniel H&uuml;sken
7
+ Version: 1.7.0
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
34
  //Set plugin dirname
35
  define('BACKWPUP_PLUGIN_BASEDIR', dirname(plugin_basename(__FILE__)));
36
  //Set Plugin Version
37
+ define('BACKWPUP_VERSION', '1.7.0');
38
  //Set User Capability
39
  define('BACKWPUP_USER_CAPABILITY', '10');
40
  //Set useable destinations
41
  if (!defined('BACKWPUP_DESTS'))
42
+ define('BACKWPUP_DESTS', 'S3,RSC,FTP,DROPBOX,MSAZURE,SUGARSYNC');
43
  //Set Dropbox Aplication Keys
44
  define('BACKWPUP_DROPBOX_APP_KEY', 'q2jbt0unkkc54u2');
45
  define('BACKWPUP_DROPBOX_APP_SECRET', 't5hlbxtz473hchy');
46
+ //Set SugarSync Aplication Keys
47
+ define('BACKWPUP_SUGARSYNC_ACCESSKEY', 'OTcwNjc5MTI5OTQxMzY1Njc5OA');
48
+ define('BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY', 'NzNmNDMwMDBiNTkwNDY0YzhjY2JiN2E5YWVkMjFmYmI');
49
  //load Text Domain
50
  load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_BASEDIR.'/lang');
51
  //Load functions file
74
  add_action('wp_ajax_backwpup_get_aws_buckets', 'backwpup_get_aws_buckets');
75
  add_action('wp_ajax_backwpup_get_rsc_container', 'backwpup_get_rsc_container');
76
  add_action('wp_ajax_backwpup_get_msazure_container', 'backwpup_get_msazure_container');
77
+ add_action('wp_ajax_backwpup_get_sugarsync_root', 'backwpup_get_sugarsync_root');
78
  //Disabele WP_Corn
79
  $cfg=get_option('backwpup');
80
  if ($cfg['disablewpcron'])
lang/backwpup-de_DE.mo ADDED
Binary file
lang/backwpup-de_DE.po ADDED
@@ -0,0 +1,2269 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: BackWPup\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tags/backwpup\n"
5
+ "POT-Creation-Date: 2010-06-23 17:08+0000\n"
6
+ "PO-Revision-Date: 2011-03-27 14:14+0100\n"
7
+ "Last-Translator: David Decker <deckerweb.mobil@googlemail.com>\n"
8
+ "Language-Team: DECKERWEB <deckerweb.mobil@googlemail.com>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-Language: German\n"
14
+ "X-Poedit-Country: GERMANY\n"
15
+ "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
+ "X-Poedit-Basepath: .\n"
18
+ "X-Textdomain-Support: yes\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #@ backwpup
22
+ #: app/backwpup_dojob.php:159
23
+ msgid "[WARNING]"
24
+ msgstr "[WARNUNG]"
25
+
26
+ #@ backwpup
27
+ #: app/backwpup_dojob.php:78
28
+ #: app/backwpup_dojob.php:165
29
+ #: app/options-save.php:63
30
+ msgid "[ERROR]"
31
+ msgstr "[FEHLER]"
32
+
33
+ #@ backwpup
34
+ #: app/backwpup_dojob.php:169
35
+ msgid "[DEPRECATED]"
36
+ msgstr "[VERALTET]"
37
+
38
+ #@ backwpup
39
+ #: app/backwpup_dojob.php:172
40
+ msgid "[STRICT NOTICE]"
41
+ msgstr "[STRENGER HINWEIS]"
42
+
43
+ #@ backwpup
44
+ #: app/backwpup_dojob.php:175
45
+ msgid "[RECOVERABLE ERROR]"
46
+ msgstr "[L&Ouml;SBARER FEHLER]"
47
+
48
+ #@ backwpup
49
+ #: app/backwpup_dojob.php:65
50
+ #, php-format
51
+ msgid "BackWPup Log for %1$s from %2$s at %3$s"
52
+ msgstr "BackWPup Log f&uuml;r %1$s vom %2$s um %3$s"
53
+
54
+ #@ backwpup
55
+ #: app/backwpup_dojob.php:131
56
+ #, php-format
57
+ msgid "PHP Safe Mode is on!!! Max exec time is %1$d sec."
58
+ msgstr "PHP Safe Mode ist an!!! Maximale ausf&uuml;hrbare Zeit ist %1$d Sek."
59
+
60
+ #@ backwpup
61
+ #: app/backwpup_dojob.php:229
62
+ #, php-format
63
+ msgid "Can not create Folder: %1$s"
64
+ msgstr "Ordner kann nicht erstellt werden: %1$s"
65
+
66
+ #@ backwpup
67
+ #: app/backwpup_dojob.php:234
68
+ #, php-format
69
+ msgid "Can not write to Folder: %1$s"
70
+ msgstr "In den Ordner kann nicht geschrieben werden: %1$s"
71
+
72
+ #@ backwpup
73
+ #: app/backwpup_dojob.php:268
74
+ #, php-format
75
+ msgid "PHP Safe Mode is on!!! Can not increase Memory Limit is %1$s"
76
+ msgstr "PHP Safe Mode ist an!!! Speicherlimit kann nicht erh&ouml;ht werden, ist %1$s"
77
+
78
+ #@ backwpup
79
+ #: app/backwpup_dojob.php:295
80
+ #, php-format
81
+ msgid "Memory increased from %1$s to %2$s"
82
+ msgstr "Speicher(limit) erh&ouml;ht von %1$s auf %2$s"
83
+
84
+ #@ backwpup
85
+ #: app/backwpup_dojob.php:297
86
+ #, php-format
87
+ msgid "Can not increase Memory Limit is %1$s"
88
+ msgstr "Speicherlimit kann nicht erh&ouml;ht werden, ist %1$s"
89
+
90
+ #@ backwpup
91
+ #: app/backwpup_dojob.php:307
92
+ msgid "Set Blog to Maintenance Mode"
93
+ msgstr "Setze Webseite/ Blog in den Wartungsmodus (via Plugin!)"
94
+
95
+ #@ backwpup
96
+ #: app/backwpup_dojob.php:323
97
+ msgid "Set Blog to normal Mode"
98
+ msgstr "Setze Webseite/ Blog zur&uuml;ck in den Normalmodus"
99
+
100
+ #@ backwpup
101
+ #: app/backwpup_dojob.php:339
102
+ msgid "Run Database check..."
103
+ msgstr "Datenbank-Check l&auml;uft ..."
104
+
105
+ #@ backwpup
106
+ #: app/backwpup_dojob.php:354
107
+ #: app/backwpup_dojob.php:356
108
+ #: app/backwpup_dojob.php:358
109
+ #, php-format
110
+ msgid "Result of table check for %1$s is: %2$s"
111
+ msgstr "Ergebnis f&uuml;r den Tabellencheck f&uuml;r %1$s, ist %2$s"
112
+
113
+ #@ backwpup
114
+ #: app/backwpup_dojob.php:361
115
+ #: app/backwpup_dojob.php:373
116
+ #: app/backwpup_dojob.php:397
117
+ #: app/backwpup_dojob.php:407
118
+ #: app/backwpup_dojob.php:452
119
+ #: app/backwpup_dojob.php:463
120
+ #: app/backwpup_dojob.php:590
121
+ #: app/tools/db_restore.php:68
122
+ #: app/tools/db_restore.php:79
123
+ #: app/tools/db_restore.php:82
124
+ #: app/tools/db_restore.php:85
125
+ #: app/tools/db_restore.php:90
126
+ #, php-format
127
+ msgid "BackWPup database error %1$s for query %2$s"
128
+ msgstr "BackWPup-Datenbankfehler %1$s f&uuml;r die Anfrage %2$s"
129
+
130
+ #@ backwpup
131
+ #: app/backwpup_dojob.php:366
132
+ #: app/backwpup_dojob.php:368
133
+ #: app/backwpup_dojob.php:370
134
+ #, php-format
135
+ msgid "Result of table repair for %1$s is: %2$s"
136
+ msgstr "Ergebnis der Tabellenreparatur f&uuml;r %1$s ist: %2$s"
137
+
138
+ #@ backwpup
139
+ #: app/backwpup_dojob.php:378
140
+ msgid "Database check done!"
141
+ msgstr "Datenbank-Check fertig!"
142
+
143
+ #@ backwpup
144
+ #: app/backwpup_dojob.php:380
145
+ msgid "No Tables to check"
146
+ msgstr "Keine Tabellen zum Checken"
147
+
148
+ #@ backwpup
149
+ #: app/backwpup_dojob.php:445
150
+ msgid "Run Database Dump to file..."
151
+ msgstr "Datenbank-Dump wird gespeichert in Datei ..."
152
+
153
+ #@ backwpup
154
+ #: app/backwpup_dojob.php:496
155
+ msgid "Dump Database table: "
156
+ msgstr "Datenbanktabelle dumpen: "
157
+
158
+ #@ backwpup
159
+ #: app/backwpup_dojob.php:513
160
+ msgid "Can not create Database Dump file"
161
+ msgstr "Datenbank-Dump-Datei kann nicht erstellt werden"
162
+
163
+ #@ backwpup
164
+ #: app/backwpup_dojob.php:516
165
+ msgid "No Tables to Dump"
166
+ msgstr "Keine Tabellen zum Dumpen"
167
+
168
+ #@ backwpup
169
+ #: app/backwpup_dojob.php:511
170
+ msgid "Database Dump done!"
171
+ msgstr "Datenbank-Dump fertig!"
172
+
173
+ #@ backwpup
174
+ #: app/backwpup_dojob.php:521
175
+ msgid "Add Database Dump to Backup:"
176
+ msgstr "F&uuml;ge Datenbank-Dump zur Datensicherung hinzu:"
177
+
178
+ #@ backwpup
179
+ #: app/backwpup_dojob.php:532
180
+ #: app/backwpup_dojob.php:549
181
+ msgid "Run Wordpress Export to XML file..."
182
+ msgstr "WordPress Export als XML-Datei l&auml;uft ..."
183
+
184
+ #@ backwpup
185
+ #: app/backwpup_dojob.php:551
186
+ msgid "Export to XML done!"
187
+ msgstr "Export zu XML ist fertig!"
188
+
189
+ #@ backwpup
190
+ #: app/backwpup_dojob.php:560
191
+ msgid "Add XML Export to Backup:"
192
+ msgstr "F&uuml;ge XML-Export zur Datensicherung hinzu:"
193
+
194
+ #@ backwpup
195
+ #: app/backwpup_dojob.php:553
196
+ msgid "Can not Export to XML!"
197
+ msgstr "Kein Export zu XML m&ouml;glich!"
198
+
199
+ #@ backwpup
200
+ #: app/backwpup_dojob.php:569
201
+ msgid "Run Database optimize..."
202
+ msgstr "Datenbankoptimierung l&auml;uft ..."
203
+
204
+ #@ backwpup
205
+ #: app/backwpup_dojob.php:583
206
+ #: app/backwpup_dojob.php:585
207
+ #: app/backwpup_dojob.php:587
208
+ #, php-format
209
+ msgid "Result of table optimize for %1$s is: %2$s"
210
+ msgstr "Ergebnis der Tabellenoptimierung f&uuml;r %1$s ist: %2$s"
211
+
212
+ #@ backwpup
213
+ #: app/backwpup_dojob.php:593
214
+ msgid "Database optimize done!"
215
+ msgstr "Datenbankoptimierung fertig!"
216
+
217
+ #@ backwpup
218
+ #: app/backwpup_dojob.php:596
219
+ msgid "No Tables to optimize"
220
+ msgstr "Keine Tabellen zum Optimieren"
221
+
222
+ #@ backwpup
223
+ #: app/backwpup_dojob.php:624
224
+ msgid "Is not a file or directory:"
225
+ msgstr "Dies ist kein(e) Datei oder ein Verzeichnis:"
226
+
227
+ #@ backwpup
228
+ #: app/backwpup_dojob.php:634
229
+ msgid "Make a list of files to Backup ...."
230
+ msgstr "Erstelle Liste von Dateien zur Datensicherung ..."
231
+
232
+ #@ backwpup
233
+ #: app/backwpup_dojob.php:683
234
+ msgid "No files to Backup"
235
+ msgstr "Keine Dateien f&uuml;r die Datensicherung"
236
+
237
+ #@ backwpup
238
+ #: app/backwpup_dojob.php:693
239
+ msgid "Create Backup Zip file..."
240
+ msgstr "Erstelle Datensicherungs-ZIP-Datei ..."
241
+
242
+ #@ backwpup
243
+ #: app/backwpup_dojob.php:701
244
+ #: app/backwpup_dojob.php:722
245
+ msgid "Add File to ZIP file:"
246
+ msgstr "F&uuml;ge Datei dem ZIP-Paket hinzu:"
247
+
248
+ #@ backwpup
249
+ #: app/backwpup_dojob.php:703
250
+ msgid "Can not add File to ZIP file:"
251
+ msgstr "Datei kann dem ZIP-Paket nicht hinzugef&uuml;gt werden:"
252
+
253
+ #@ backwpup
254
+ #: app/backwpup_dojob.php:707
255
+ #: app/backwpup_dojob.php:729
256
+ msgid "Backup Zip file create done!"
257
+ msgstr "Erstellung der Datensicherungs-ZIP-Datei fertig!"
258
+
259
+ #@ backwpup
260
+ #: app/backwpup_dojob.php:709
261
+ msgid "Can not create Backup ZIP file:"
262
+ msgstr "Datensicherungs-ZIP-Datei kann nicht erstellt werden:"
263
+
264
+ #@ backwpup
265
+ #: app/backwpup_dojob.php:719
266
+ msgid "Create Backup Zip (PclZip) file..."
267
+ msgstr "Erstelle Datensicherungs-ZIP-Paket (PclZip) ..."
268
+
269
+ #@ backwpup
270
+ #: app/backwpup_dojob.php:727
271
+ msgid "Zip file create:"
272
+ msgstr "ZIP-Paketerstellung:"
273
+
274
+ #@ backwpup
275
+ #: app/backwpup_dojob.php:748
276
+ msgid "Can not create TAR Backup file"
277
+ msgstr "TAR-Datensicherungs-Datei kann nicht erstellt werden"
278
+
279
+ #@ backwpup
280
+ #: app/backwpup_dojob.php:751
281
+ msgid "Create Backup Archive file..."
282
+ msgstr "Erstelle Datensicherungs-Archivdatei ..."
283
+
284
+ #@ backwpup
285
+ #: app/backwpup_dojob.php:758
286
+ msgid "Add File to Backup Archive:"
287
+ msgstr "Datei zum Datensicherungs-Archiv hinzuf&uuml;gen:"
288
+
289
+ #@ backwpup
290
+ #: app/backwpup_dojob.php:855
291
+ msgid "Backup Archive file create done!"
292
+ msgstr "Datensicherungs-Archivdatei wurde erstellt!"
293
+
294
+ #@ backwpup
295
+ #: app/backwpup_dojob.php:895
296
+ #: app/backwpup_dojob.php:902
297
+ #: app/backwpup_dojob.php:914
298
+ #: app/backwpup_dojob.php:927
299
+ msgid "FTP Client command:"
300
+ msgstr "FTP-Client Kommando:"
301
+
302
+ #@ backwpup
303
+ #: app/backwpup_dojob.php:897
304
+ #: app/backwpup_dojob.php:900
305
+ #: app/backwpup_dojob.php:904
306
+ #: app/backwpup_dojob.php:917
307
+ #: app/backwpup_dojob.php:919
308
+ #: app/backwpup_dojob.php:922
309
+ #: app/backwpup_dojob.php:924
310
+ #: app/backwpup_dojob.php:930
311
+ #: app/backwpup_dojob.php:932
312
+ msgid "FTP Server reply:"
313
+ msgstr "FTP-Server Antwort:"
314
+
315
+ #@ backwpup
316
+ #: app/backwpup_dojob.php:919
317
+ msgid "Can not Entering Passive Mode"
318
+ msgstr "Einstieg in den passiven Modus nicht m&ouml;glich"
319
+
320
+ #@ backwpup
321
+ #: app/backwpup_dojob.php:951
322
+ msgid "Backup File transferred to FTP Server:"
323
+ msgstr "Datensicherungs-Datei auf den FTP-Server transferiert:"
324
+
325
+ #@ backwpup
326
+ #: app/backwpup_dojob.php:954
327
+ msgid "Can not transfer backup to FTP server."
328
+ msgstr "Datensicherung kann nicht auf den FTP-Server transferiert werden."
329
+
330
+ #@ backwpup
331
+ #: app/backwpup_dojob.php:970
332
+ msgid "Can not delete file on FTP Server:"
333
+ msgstr "Datei auf dem FTP-Server kann nicht gel&ouml;scht werden:"
334
+
335
+ #@ backwpup
336
+ #: app/backwpup_dojob.php:973
337
+ msgid "files deleted on FTP Server:"
338
+ msgstr "Dateien gel&ouml;scht auf dem FTP-Server:"
339
+
340
+ #@ backwpup
341
+ #: app/backwpup_dojob.php:1001
342
+ msgid "Send mail with SMTP"
343
+ msgstr "E-Mail senden mit SMTP"
344
+
345
+ #@ backwpup
346
+ #: app/backwpup_dojob.php:1005
347
+ msgid "Send mail with Sendmail"
348
+ msgstr "E-Mail senden mit Sendmail"
349
+
350
+ #@ backwpup
351
+ #: app/backwpup_dojob.php:1008
352
+ msgid "Send mail with PHP mail"
353
+ msgstr "E-Mail senden mit PHP mail"
354
+
355
+ #@ backwpup
356
+ #: app/backwpup_dojob.php:1012
357
+ msgid "Creating mail"
358
+ msgstr "E-Mail erstellen"
359
+
360
+ #@ backwpup
361
+ #: app/backwpup_dojob.php:1016
362
+ msgid "BackWPup File from"
363
+ msgstr "BackWPup-Datei von"
364
+
365
+ #@ backwpup
366
+ #: app/backwpup_dojob.php:1024
367
+ msgid "Backup Archive too big for sending by mail"
368
+ msgstr "Datensicherungs-Archiv ist zu gro&szlig;, um es via E-Mail zu senden"
369
+
370
+ #@ backwpup
371
+ #: app/backwpup_dojob.php:1029
372
+ msgid "Adding Attachment to mail"
373
+ msgstr "Anhang wird zur E-Mail hinzugef&uuml;gt"
374
+
375
+ #@ backwpup
376
+ #: app/backwpup_dojob.php:1033
377
+ msgid "Send mail...."
378
+ msgstr "E-Mail wird gesendet ..."
379
+
380
+ #@ backwpup
381
+ #: app/backwpup_dojob.php:1037
382
+ msgid "Mail send!!!"
383
+ msgstr "E-Mail wurde gesendet!!!"
384
+
385
+ #@ backwpup
386
+ #: app/backwpup_dojob.php:1035
387
+ msgid "Can not send mail:"
388
+ msgstr "E-Mail kann nicht gesendet werden:"
389
+
390
+ #@ backwpup
391
+ #: app/backwpup_dojob.php:1053
392
+ msgid "Connected to S3 Bucket:"
393
+ msgstr "Verbunden mit S3 Bucket:"
394
+
395
+ #@ backwpup
396
+ #: app/backwpup_dojob.php:1062
397
+ msgid "Backup File transferred to S3://"
398
+ msgstr "Datensicherungs-Datei zu S3 transferiert://"
399
+
400
+ #@ backwpup
401
+ #: app/backwpup_dojob.php:1065
402
+ msgid "Can not transfer backup to S3."
403
+ msgstr "Datensicherung kann nicht zu S3 transferiert werden."
404
+
405
+ #@ backwpup
406
+ #: app/backwpup_dojob.php:1087
407
+ msgid "files deleted on S3 Bucket!"
408
+ msgstr "Dateien wurden auf S3 Bucket gel&ouml;scht!"
409
+
410
+ #@ backwpup
411
+ #: app/backwpup_dojob.php:1094
412
+ msgid "S3 Bucket not exists:"
413
+ msgstr "S3 Bucket existiert nicht:"
414
+
415
+ #@ backwpup
416
+ #: app/backwpup_dojob.php:1255
417
+ msgid "old backup files deleted!!!"
418
+ msgstr "alte Datensicherungs-Dateien gel&ouml;scht!!!"
419
+
420
+ #@ backwpup
421
+ #: app/backwpup_dojob.php:734
422
+ #: app/backwpup_dojob.php:857
423
+ #, php-format
424
+ msgid "Backup Archive File size is %1s"
425
+ msgstr "Datensicherungs-Dateigr&ouml;&szlig;e ist %1s"
426
+
427
+ #@ backwpup
428
+ #: app/backwpup_dojob.php:1398
429
+ msgid "old Log files deleted!!!"
430
+ msgstr "alte Logdateien gel&ouml;scht!!!"
431
+
432
+ #@ backwpup
433
+ #: app/backwpup_dojob.php:1401
434
+ #, php-format
435
+ msgid "Job done in %1s sec."
436
+ msgstr "Auftrag ausgef&uuml;hrt in %1s Sekunden."
437
+
438
+ #@ backwpup
439
+ #: app/backwpup_dojob.php:1506
440
+ msgid "Jobname:"
441
+ msgstr "Auftragsname:"
442
+
443
+ #@ backwpup
444
+ #: app/backwpup_dojob.php:1507
445
+ msgid "Jobtype:"
446
+ msgstr "Auftragstyp:"
447
+
448
+ #@ backwpup
449
+ #: app/backwpup_dojob.php:1509
450
+ msgid "Errors:"
451
+ msgstr "Fehler:"
452
+
453
+ #@ backwpup
454
+ #: app/backwpup_dojob.php:1511
455
+ msgid "Warnings:"
456
+ msgstr "Warnungen:"
457
+
458
+ #@ backwpup
459
+ #. translators: plugin header field 'Name'
460
+ #: app/php-functions.php:15
461
+ #: app/php-functions.php:89
462
+ #: app/php-functions.php:275
463
+ #: backwpup.php:0
464
+ msgid "BackWPup"
465
+ msgstr "BackWPup"
466
+
467
+ #@ backwpup
468
+ #: app/list-tables.php:262
469
+ msgid "Job"
470
+ msgstr "Auftrag"
471
+
472
+ #@ backwpup
473
+ #: app/list-tables.php:57
474
+ #: app/list-tables.php:263
475
+ msgid "Type"
476
+ msgstr "Typ"
477
+
478
+ #@ backwpup
479
+ #: app/list-tables.php:264
480
+ msgid "Backup/Log Date/Time"
481
+ msgstr "Backup/Log Datum/Zeit"
482
+
483
+ #@ backwpup
484
+ #: app/list-tables.php:265
485
+ msgid "Status"
486
+ msgstr "Status"
487
+
488
+ #@ backwpup
489
+ #: app/list-tables.php:266
490
+ #: app/list-tables.php:426
491
+ msgid "Size"
492
+ msgstr "Gr&ouml;&szlig;e"
493
+
494
+ #@ backwpup
495
+ #: app/list-tables.php:267
496
+ msgid "Runtime"
497
+ msgstr "Laufzeit"
498
+
499
+ #@ backwpup
500
+ #: app/list-tables.php:55
501
+ msgid "ID"
502
+ msgstr "ID"
503
+
504
+ #@ backwpup
505
+ #: app/list-tables.php:56
506
+ msgid "Job Name"
507
+ msgstr "Auftragsname"
508
+
509
+ #@ backwpup
510
+ #: app/list-tables.php:59
511
+ msgid "Next Run"
512
+ msgstr "N&auml;chster Durchlauf"
513
+
514
+ #@ backwpup
515
+ #: app/list-tables.php:60
516
+ msgid "Last Run"
517
+ msgstr "Letzter Durchlauf"
518
+
519
+ #@ default
520
+ #: app/php-functions.php:116
521
+ #: app/php-functions.php:267
522
+ msgid "Support"
523
+ msgstr "Support"
524
+
525
+ #@ default
526
+ #: app/php-functions.php:117
527
+ #: app/php-functions.php:266
528
+ msgid "FAQ"
529
+ msgstr "FAQ"
530
+
531
+ #@ backwpup
532
+ #: app/php-functions.php:118
533
+ msgid "Plugin Homepage"
534
+ msgstr "Plugin Homepage"
535
+
536
+ #@ backwpup
537
+ #: app/php-functions.php:119
538
+ msgid "Plugin Home on WordPress.org"
539
+ msgstr "Plugin-Seite bei WordPress.org"
540
+
541
+ #@ default
542
+ #: app/php-functions.php:120
543
+ #: app/php-functions.php:268
544
+ msgid "Donate"
545
+ msgstr "Spenden"
546
+
547
+ #@ backwpup
548
+ #: app/php-functions.php:127
549
+ msgid "Version:"
550
+ msgstr "Version:"
551
+
552
+ #@ backwpup
553
+ #: app/php-functions.php:128
554
+ msgid "Author:"
555
+ msgstr "Autor:"
556
+
557
+ #@ backwpup
558
+ #: app/php-functions.php:256
559
+ msgid "Go to Settings Page"
560
+ msgstr "Gehe zur Einstellungsseite"
561
+
562
+ #@ backwpup
563
+ #@ default
564
+ #: app/php-functions.php:205
565
+ #: app/php-functions.php:256
566
+ msgid "Settings"
567
+ msgstr "Einstellungen"
568
+
569
+ #@ backwpup
570
+ #: app/php-functions.php:401
571
+ msgid "WP XML Export"
572
+ msgstr "WP XML Export"
573
+
574
+ #@ backwpup
575
+ #: app/php-functions.php:404
576
+ msgid "Database Backup"
577
+ msgstr "Datenbank-Sicherung"
578
+
579
+ #@ backwpup
580
+ #: app/options-edit-job.php:241
581
+ #: app/php-functions.php:407
582
+ msgid "File Backup"
583
+ msgstr "Dateien-Sicherung"
584
+
585
+ #@ backwpup
586
+ #: app/php-functions.php:410
587
+ msgid "Optimize Database Tables"
588
+ msgstr "Datenbanktabellen optimieren"
589
+
590
+ #@ backwpup
591
+ #: app/php-functions.php:413
592
+ msgid "Check Database Tables"
593
+ msgstr "Datenbanktabellen checken"
594
+
595
+ #@ backwpup
596
+ #: app/php-functions.php:465
597
+ msgid "Logs:"
598
+ msgstr "Logdateien:"
599
+
600
+ #@ backwpup
601
+ #: app/php-functions.php:82
602
+ #: app/php-functions.php:481
603
+ msgid "View Log"
604
+ msgstr "Log ansehen"
605
+
606
+ #@ backwpup
607
+ #: app/list-tables.php:334
608
+ #: app/php-functions.php:489
609
+ msgid "ERROR(S)"
610
+ msgstr "FEHLER"
611
+
612
+ #@ backwpup
613
+ #: app/list-tables.php:336
614
+ #: app/php-functions.php:491
615
+ msgid "WARNING(S)"
616
+ msgstr "WARNUNG(EN)"
617
+
618
+ #@ backwpup
619
+ #: app/list-tables.php:338
620
+ #: app/php-functions.php:493
621
+ msgid "OK"
622
+ msgstr "OK"
623
+
624
+ #@ backwpup
625
+ #: app/options-settings.php:46
626
+ #: app/php-functions.php:501
627
+ #: app/php-functions.php:518
628
+ msgid "none"
629
+ msgstr "nichts"
630
+
631
+ #@ backwpup
632
+ #: app/php-functions.php:504
633
+ msgid "Scheduled Jobs:"
634
+ msgstr "Geplante Auftr&auml;ge:"
635
+
636
+ #@ backwpup
637
+ #: app/php-functions.php:507
638
+ msgid "Edit Job"
639
+ msgstr "Auftrag bearbeiten"
640
+
641
+ #@ backwpup
642
+ #: app/list-tables.php:152
643
+ #: app/php-functions.php:510
644
+ msgid "Running since:"
645
+ msgstr "L&auml;uft seit:"
646
+
647
+ #@ backwpup
648
+ #: app/list-tables.php:152
649
+ #: app/list-tables.php:168
650
+ #: app/list-tables.php:353
651
+ #: app/php-functions.php:510
652
+ msgid "sec."
653
+ msgstr "Sek."
654
+
655
+ #@ backwpup
656
+ #: app/options-edit-job.php:12
657
+ msgid "BackWPup Job Settings"
658
+ msgstr "BackWPup Auftragseinstellungen"
659
+
660
+ #@ backwpup
661
+ #: app/options-edit-job.php:43
662
+ msgid "Job Type"
663
+ msgstr "Auftrags-Typ"
664
+
665
+ #@ backwpup
666
+ #: app/list-tables.php:108
667
+ #: app/options-edit-job.php:55
668
+ msgid ""
669
+ "You are about to delete this Job. \n"
670
+ " 'Cancel' to stop, 'OK' to delete."
671
+ msgstr ""
672
+ "Sie sind dabei den Auftrag zu l&ouml;schen. \n"
673
+ " 'Abbrechen', um zu stoppen, 'OK', um zu l&ouml;schen."
674
+
675
+ #@ default
676
+ #@ backwpup
677
+ #: app/list-tables.php:47
678
+ #: app/list-tables.php:108
679
+ #: app/list-tables.php:254
680
+ #: app/list-tables.php:317
681
+ #: app/list-tables.php:417
682
+ #: app/list-tables.php:485
683
+ #: app/options-edit-job.php:55
684
+ msgid "Delete"
685
+ msgstr "L&ouml;schen"
686
+
687
+ #@ default
688
+ #@ backwpup
689
+ #: app/compatibility/class-wp-list-table.php:959
690
+ #: app/options-edit-job.php:58
691
+ #: app/options-settings.php:22
692
+ #: app/options-settings.php:84
693
+ msgid "Save Changes"
694
+ msgstr "&Auml;nderungen speichern"
695
+
696
+ #@ backwpup
697
+ #: app/options-edit-job.php:65
698
+ msgid "Job Schedule"
699
+ msgstr "Auftragsplanung"
700
+
701
+ #@ backwpup
702
+ #: app/options-edit-job.php:67
703
+ msgid "Activate scheduling"
704
+ msgstr "Planung aktivieren"
705
+
706
+ #@ default
707
+ #: app/options-edit-job.php:131
708
+ msgid "January"
709
+ msgstr "Januar"
710
+
711
+ #@ default
712
+ #: app/options-edit-job.php:132
713
+ msgid "February"
714
+ msgstr "Februar"
715
+
716
+ #@ default
717
+ #: app/options-edit-job.php:133
718
+ msgid "March"
719
+ msgstr "M&auml;rz"
720
+
721
+ #@ default
722
+ #: app/options-edit-job.php:134
723
+ msgid "April"
724
+ msgstr "April"
725
+
726
+ #@ default
727
+ #: app/options-edit-job.php:135
728
+ msgid "May"
729
+ msgstr "Mai"
730
+
731
+ #@ default
732
+ #: app/options-edit-job.php:136
733
+ msgid "June"
734
+ msgstr "Juni"
735
+
736
+ #@ default
737
+ #: app/options-edit-job.php:137
738
+ msgid "July"
739
+ msgstr "Juli"
740
+
741
+ #@ default
742
+ #: app/options-edit-job.php:139
743
+ msgid "September"
744
+ msgstr "September"
745
+
746
+ #@ default
747
+ #: app/options-edit-job.php:140
748
+ msgid "October"
749
+ msgstr "Oktober"
750
+
751
+ #@ default
752
+ #: app/options-edit-job.php:141
753
+ msgid "November"
754
+ msgstr "November"
755
+
756
+ #@ default
757
+ #: app/options-edit-job.php:142
758
+ msgid "December"
759
+ msgstr "Dezember"
760
+
761
+ #@ backwpup
762
+ #: app/options-edit-job.php:199
763
+ msgid "Send log"
764
+ msgstr "Sende Log"
765
+
766
+ #@ backwpup
767
+ #: app/options-edit-job.php:201
768
+ msgid "E-Mail-Adress:"
769
+ msgstr "E-Mail-Adresse:"
770
+
771
+ #@ backwpup
772
+ #: app/options-edit-job.php:215
773
+ msgid "Enter Job name here"
774
+ msgstr "Auftragsname hier eintragen"
775
+
776
+ #@ backwpup
777
+ #: app/options-edit-job.php:221
778
+ msgid "Database Jobs"
779
+ msgstr "Datenbank-Auftr&auml;ge"
780
+
781
+ #@ backwpup
782
+ #: app/options-edit-job.php:236
783
+ msgid "Set Blog Maintenance Mode on Database Operations"
784
+ msgstr "Webseite/ Blog in den Wartungsmodus versetzen, w&auml;hrend Datenbank-Operationen ausgef&uuml;hrt werden"
785
+
786
+ #@ backwpup
787
+ #: app/options-edit-job.php:243
788
+ msgid "Blog Folders to Backup:"
789
+ msgstr "Webseiten-/ Blog-Ordner, die gesichert werden sollen:"
790
+
791
+ #@ backwpup
792
+ #: app/options-edit-job.php:327
793
+ msgid "Include Folders to Backup:"
794
+ msgstr "Diese Ordner in die Sicherung einschlie&szlig;en:"
795
+
796
+ #@ backwpup
797
+ #: app/options-edit-job.php:192
798
+ #: app/options-edit-job.php:328
799
+ #: app/options-edit-job.php:332
800
+ msgid "Example:"
801
+ msgstr "Beispiel:"
802
+
803
+ #@ backwpup
804
+ #: app/options-edit-job.php:331
805
+ msgid "Exclude Files/Folders from Backup:"
806
+ msgstr "Dateien/ Ordner von der Sicherung ausschlie&szlig;en:"
807
+
808
+ #@ backwpup
809
+ #: app/options-edit-job.php:338
810
+ msgid "Backup to Directory"
811
+ msgstr "Datensicherung ins Verzeichnis"
812
+
813
+ #@ backwpup
814
+ #: app/options-edit-job.php:340
815
+ msgid "Full Path to Folder for Backup Files:"
816
+ msgstr "Kompletter Ordnerpfad zu den Datensicherungsdateien:"
817
+
818
+ #@ backwpup
819
+ #: app/options-edit-job.php:343
820
+ #: app/options-edit-job.php:457
821
+ msgid "Max. Backup Files in Folder:"
822
+ msgstr "Maximale Anzahl von Datensicherungsdateien im Ordner:"
823
+
824
+ #@ backwpup
825
+ #: app/options-edit-job.php:343
826
+ #: app/options-settings.php:62
827
+ msgid "(Oldest files will deleted first.)"
828
+ msgstr "(&Auml;lteste Dateien werden zuerst gel&ouml;scht.)"
829
+
830
+ #@ backwpup
831
+ #: app/options-edit-job.php:349
832
+ msgid "Backup to FTP Server"
833
+ msgstr "Datensicherung zum FTP-Server"
834
+
835
+ #@ backwpup
836
+ #: app/options-edit-job.php:351
837
+ msgid "Hostname:"
838
+ msgstr "Hostname:"
839
+
840
+ #@ backwpup
841
+ #: app/options-edit-job.php:353
842
+ #: app/options-edit-job.php:412
843
+ msgid "Username:"
844
+ msgstr "Benutzername:"
845
+
846
+ #@ backwpup
847
+ #: app/options-edit-job.php:355
848
+ #: app/options-edit-job.php:450
849
+ msgid "Password:"
850
+ msgstr "Passwort:"
851
+
852
+ #@ backwpup
853
+ #: app/options-edit-job.php:357
854
+ msgid "Directory on Server:"
855
+ msgstr "Verzeichnis auf dem Server:"
856
+
857
+ #@ backwpup
858
+ #: app/options-edit-job.php:360
859
+ msgid "Max. Backup Files in FTP Folder:"
860
+ msgstr "Maximale Anzahl von Datensicherungsdateien im FTP-Ordner:"
861
+
862
+ #@ backwpup
863
+ #: app/options-edit-job.php:369
864
+ msgid "Backup to Amazon S3"
865
+ msgstr "Datensicherung zu Amazon S3"
866
+
867
+ #@ backwpup
868
+ #: app/options-edit-job.php:371
869
+ msgid "Access Key ID:"
870
+ msgstr "Access Key ID (Zugangsschl&uuml;ssel-ID):"
871
+
872
+ #@ backwpup
873
+ #: app/options-edit-job.php:373
874
+ msgid "Secret Access Key:"
875
+ msgstr "Secret Access Key (Geheimer Schl&uuml;ssel):"
876
+
877
+ #@ backwpup
878
+ #: app/options-edit-job.php:375
879
+ msgid "Bucket:"
880
+ msgstr "Bucket:"
881
+
882
+ #@ backwpup
883
+ #: app/options-edit-job.php:379
884
+ msgid "Directory in Bucket:"
885
+ msgstr "Verzeichnis in Bucket:"
886
+
887
+ #@ backwpup
888
+ #: app/options-edit-job.php:463
889
+ msgid "Backup to E-Mail"
890
+ msgstr "Datensicherung via E-Mail"
891
+
892
+ #@ backwpup
893
+ #: app/options-edit-job.php:468
894
+ msgid "Max. File Size for sending Backups with mail:"
895
+ msgstr "Maximale Dateigr&ouml;&szlig;e zum Senden von Datensicherungen via E-Mail:"
896
+
897
+ #@ backwpup
898
+ #: app/php-functions.php:33
899
+ msgid "BackWPup Logs"
900
+ msgstr "BackWPup-Logdateien"
901
+
902
+ #@ backwpup
903
+ #: app/php-functions.php:201
904
+ msgid "Jobs"
905
+ msgstr "Auftr&auml;ge"
906
+
907
+ #@ backwpup
908
+ #: app/options-settings.php:57
909
+ #: app/php-functions.php:202
910
+ msgid "Logs"
911
+ msgstr "Logdateien"
912
+
913
+ #@ backwpup
914
+ #: app/php-functions.php:204
915
+ msgid "Tools"
916
+ msgstr "Werkzeuge"
917
+
918
+ #@ default
919
+ #: app/compatibility/class-wp-list-table.php:284
920
+ msgid "Bulk Actions"
921
+ msgstr "Aktion ausf&uuml;hren"
922
+
923
+ #@ default
924
+ #: app/compatibility/class-wp-list-table.php:289
925
+ msgid "Apply"
926
+ msgstr "Anwenden"
927
+
928
+ #@ backwpup
929
+ #: app/list-tables.php:314
930
+ msgid "View log"
931
+ msgstr "Log ansehen"
932
+
933
+ #@ backwpup
934
+ #: app/list-tables.php:316
935
+ msgid "View"
936
+ msgstr "Ansehen"
937
+
938
+ #@ backwpup
939
+ #: app/list-tables.php:347
940
+ msgid "only Log"
941
+ msgstr "nur Log"
942
+
943
+ #@ backwpup
944
+ #: app/options-runnow-iframe.php:13
945
+ msgid "Do Job"
946
+ msgstr "Auftrag ausf&uuml;hren"
947
+
948
+ #@ backwpup
949
+ #: app/php-functions.php:68
950
+ msgid "BackWPup Job Running"
951
+ msgstr "BackWPup-Auftrag l&auml;uft"
952
+
953
+ #@ backwpup
954
+ #: app/php-functions.php:71
955
+ msgid "Running Job"
956
+ msgstr "Laufender Auftrag"
957
+
958
+ #@ backwpup
959
+ #: app/options-save.php:443
960
+ msgid "Settings saved"
961
+ msgstr "Einstellungen gespeichert"
962
+
963
+ #@ backwpup
964
+ #: app/options-save.php:28
965
+ msgid "Copy of"
966
+ msgstr "Kopie von"
967
+
968
+ #@ backwpup
969
+ #: app/options-save.php:137
970
+ #: app/options-save.php:273
971
+ msgid "File does not exist."
972
+ msgstr "Datei existiert nicht."
973
+
974
+ #@ backwpup
975
+ #: app/options-settings.php:10
976
+ msgid "BackWPup Settings"
977
+ msgstr "BackWPup-Einstellungen"
978
+
979
+ #@ backwpup
980
+ #: app/options-settings.php:29
981
+ msgid "Send Mail"
982
+ msgstr "Send Mail"
983
+
984
+ #@ backwpup
985
+ #: app/options-settings.php:31
986
+ msgid "Sender Email:"
987
+ msgstr "Absender E-Mail:"
988
+
989
+ #@ backwpup
990
+ #: app/options-settings.php:32
991
+ msgid "Sender Name:"
992
+ msgstr "Absendername:"
993
+
994
+ #@ backwpup
995
+ #: app/options-settings.php:33
996
+ msgid "Send mail method:"
997
+ msgstr "Mailsendungsmethode:"
998
+
999
+ #@ backwpup
1000
+ #: app/options-settings.php:36
1001
+ msgid "PHP: mail()"
1002
+ msgstr "PHP: mail()"
1003
+
1004
+ #@ backwpup
1005
+ #: app/options-settings.php:37
1006
+ msgid "Sendmail"
1007
+ msgstr "Sendmail"
1008
+
1009
+ #@ backwpup
1010
+ #: app/options-settings.php:38
1011
+ msgid "SMTP"
1012
+ msgstr "SMTP"
1013
+
1014
+ #@ backwpup
1015
+ #: app/options-settings.php:41
1016
+ msgid "Sendmail Path:"
1017
+ msgstr "Sendmail-Pfad:"
1018
+
1019
+ #@ backwpup
1020
+ #: app/options-settings.php:43
1021
+ msgid "SMTP Hostname:"
1022
+ msgstr "SMTP Hostname:"
1023
+
1024
+ #@ backwpup
1025
+ #: app/options-settings.php:44
1026
+ msgid "SMTP Secure Connection:"
1027
+ msgstr "SMTP Sichere Verbindung:"
1028
+
1029
+ #@ backwpup
1030
+ #: app/options-settings.php:50
1031
+ msgid "SMTP Username:"
1032
+ msgstr "SMTP-Benutername:"
1033
+
1034
+ #@ backwpup
1035
+ #: app/options-settings.php:51
1036
+ msgid "SMTP Password:"
1037
+ msgstr "SMTP-Passwort:"
1038
+
1039
+ #@ backwpup
1040
+ #: app/options-settings.php:59
1041
+ msgid "Log file Folder:"
1042
+ msgstr "Logdatei-Ordner:"
1043
+
1044
+ #@ backwpup
1045
+ #: app/options-settings.php:61
1046
+ msgid "Max. Log Files in Folder:"
1047
+ msgstr "Max. Logdateien im Ordner:"
1048
+
1049
+ #@ backwpup
1050
+ #: app/options-settings.php:69
1051
+ msgid "Disable WP-Cron"
1052
+ msgstr "WP-Cron deaktivieren"
1053
+
1054
+ #@ backwpup
1055
+ #: app/options-settings.php:72
1056
+ msgid "You must set up a cron job that calls:"
1057
+ msgstr "Sie m&uuml;ssen einen Cron-Job einstellen, der aufruft:"
1058
+
1059
+ #@ backwpup
1060
+ #: app/options-settings.php:74
1061
+ msgid "or URL:"
1062
+ msgstr "oder URL:"
1063
+
1064
+ #@ backwpup
1065
+ #: app/options-settings.php:79
1066
+ msgid "Temp Folder"
1067
+ msgstr "Temp-Ordner (f&uuml;r tempor&auml;re Dateien)"
1068
+
1069
+ #@ backwpup
1070
+ #: app/options-tools.php:8
1071
+ msgid "BackWPup Tools"
1072
+ msgstr "BackWPup-Werkzeuge"
1073
+
1074
+ #@ backwpup
1075
+ #: app/options-tools.php:29
1076
+ msgid "Database restore"
1077
+ msgstr "Datenbank wiederherstellen"
1078
+
1079
+ #@ backwpup
1080
+ #: app/options-tools.php:32
1081
+ #: app/options-tools.php:50
1082
+ msgid "Restore"
1083
+ msgstr "Wiederherstellen"
1084
+
1085
+ #@ backwpup
1086
+ #: app/options-tools.php:47
1087
+ msgid "SQL File to restore:"
1088
+ msgstr "SQL-Datei zur Wiederherstellung:"
1089
+
1090
+ #@ default
1091
+ #: app/php-functions.php:89
1092
+ msgid "Add New"
1093
+ msgstr "Neuer Auftrag"
1094
+
1095
+ #@ backwpup
1096
+ #: app/list-tables.php:102
1097
+ msgid "Edit:"
1098
+ msgstr "Bearbeiten:"
1099
+
1100
+ #@ default
1101
+ #: app/list-tables.php:105
1102
+ msgid "Edit"
1103
+ msgstr "Bearbeiten"
1104
+
1105
+ #@ backwpup
1106
+ #: app/list-tables.php:106
1107
+ msgid "Copy"
1108
+ msgstr "Kopieren"
1109
+
1110
+ #@ backwpup
1111
+ #: app/list-tables.php:109
1112
+ msgid "Run Now"
1113
+ msgstr "Jetzt starten"
1114
+
1115
+ #@ backwpup
1116
+ #: app/list-tables.php:156
1117
+ msgid "Inactive"
1118
+ msgstr "Inaktiv"
1119
+
1120
+ #@ backwpup
1121
+ #: app/list-tables.php:168
1122
+ msgid "Runtime:"
1123
+ msgstr "Laufzeit:"
1124
+
1125
+ #@ backwpup
1126
+ #: app/list-tables.php:170
1127
+ msgid "None"
1128
+ msgstr "Nichts"
1129
+
1130
+ #@ backwpup
1131
+ #: app/tools/db_restore.php:34
1132
+ #: app/tools/db_restore.php:53
1133
+ #: app/tools/db_restore.php:68
1134
+ #: app/tools/db_restore.php:79
1135
+ #: app/tools/db_restore.php:82
1136
+ #: app/tools/db_restore.php:85
1137
+ #: app/tools/db_restore.php:90
1138
+ msgid "ERROR:"
1139
+ msgstr "FEHLER:"
1140
+
1141
+ #@ backwpup
1142
+ #: app/tools/db_restore.php:34
1143
+ #, php-format
1144
+ msgid "Pleace set <i>$table_prefix = '%1$s';</i> in wp-config.php"
1145
+ msgstr "Bitte setzen Sie <i>$table_prefix = '%1$s';</i> innerhalb der Datei wp-config.php"
1146
+
1147
+ #@ backwpup
1148
+ #: app/tools/db_restore.php:53
1149
+ #, php-format
1150
+ msgid "Pleace set <i>define('DB_CHARSET', '%1$s');</i> in wp-config.php"
1151
+ msgstr "Bitte setzen Sie <i>define('DB_CHARSET', '%1$s');</i> in der Datei wp-config.php"
1152
+
1153
+ #@ backwpup
1154
+ #: app/tools/db_restore.php:74
1155
+ #, php-format
1156
+ msgid "%1$s Database Querys done."
1157
+ msgstr "%1$s Datenbankabfragen fertig."
1158
+
1159
+ #@ backwpup
1160
+ #: app/tools/db_restore.php:75
1161
+ msgid "Make changes for Blogurl and ABSPATH if needed."
1162
+ msgstr "Machen Sie &Auml;nderungen an der Blogurl und bei ABSPATH, falls notwendig."
1163
+
1164
+ #@ backwpup
1165
+ #: app/tools/db_restore.php:92
1166
+ msgid "Restore Done. Please delete the SQL file after Restore."
1167
+ msgstr "Wiederherstellung abgeschlossen. Bitte l&ouml;schen Sie die SQL-Datei nach der Wiederherstellung."
1168
+
1169
+ #@ backwpup
1170
+ #: app/backwpup_dojob.php:75
1171
+ msgid "Working Job will closed!!! And a new started!!!"
1172
+ msgstr "Der derzeit ausgef&uuml;hrte Auftrag wird geschlossen!!! Ein neuer Auftrag wird gestartet!!!"
1173
+
1174
+ #@ backwpup
1175
+ #: app/backwpup_dojob.php:78
1176
+ msgid "Backup Aborted working to long!!!"
1177
+ msgstr "Die Datensicherung wurde abgebrochen, da sie zu lange brauchte!!!"
1178
+
1179
+ #@ backwpup
1180
+ #: app/backwpup_dojob.php:95
1181
+ #, php-format
1182
+ msgid "Job %1$s already running!!!"
1183
+ msgstr "Auftrag %1$s l&uuml;uft bereits!!!"
1184
+
1185
+ #@ backwpup
1186
+ #: app/backwpup_dojob.php:135
1187
+ #, php-format
1188
+ msgid "Memory limit set to %1$s ,because can not use PHP: memory_get_usage() function to dynamically increase the Memory!"
1189
+ msgstr "Das Speicherlimit ist auf %1$s, weil die PHP-Funktion memory_get_usage() nicht genutzt werden kann, die ansonsten dynamisch den Speicher erh&ouml;ht!"
1190
+
1191
+ #@ backwpup
1192
+ #: app/backwpup_dojob.php:541
1193
+ msgid "cURL:"
1194
+ msgstr "cURL:"
1195
+
1196
+ #@ backwpup
1197
+ #: app/backwpup_dojob.php:556
1198
+ msgid "Can not Export to XML! no cURL or allow_url_fopen Support!"
1199
+ msgstr "Als XML kann nicht exportiert werden! Es steht keine cURL- oder allow_url_fopen-Unterst&uuml;tzung zur Verf&uuml;gung!"
1200
+
1201
+ #@ backwpup
1202
+ #: app/backwpup_dojob.php:940
1203
+ msgid "FTP Folder on Server not exists!"
1204
+ msgstr "Der FTP-Ordner auf dem Server existiert nicht!"
1205
+
1206
+ #@ backwpup
1207
+ #: app/backwpup_dojob.php:942
1208
+ msgid "FTP Folder created!"
1209
+ msgstr "FTP-Ordner erstellt!"
1210
+
1211
+ #@ backwpup
1212
+ #: app/backwpup_dojob.php:945
1213
+ msgid "FTP Folder on Server can not created!"
1214
+ msgstr "Der FTP-Ordner auf dem Server kann nicht angelegt werden!"
1215
+
1216
+ #@ backwpup
1217
+ #: app/backwpup_dojob.php:982
1218
+ msgid "Prepare Sending backup file with mail..."
1219
+ msgstr "Datensicherungs-Datei wird vorbereitet zum Versenden via E-Mail ..."
1220
+
1221
+ #@ backwpup
1222
+ #: app/backwpup_dojob.php:1084
1223
+ msgid "Can not delete file on S3://"
1224
+ msgstr "Datei auf S3 kann nicht gel&ouml;scht werden://"
1225
+
1226
+ #@ backwpup
1227
+ #: app/backwpup_dojob.php:1111
1228
+ msgid "Connected to Rackspase ..."
1229
+ msgstr "Verbunden mit Rackspase ..."
1230
+
1231
+ #@ backwpup
1232
+ #: app/backwpup_dojob.php:1127
1233
+ #: app/backwpup_dojob.php:1176
1234
+ msgid "Rackspase Cloud API:"
1235
+ msgstr "Rackspase Cloud API:"
1236
+
1237
+ #@ backwpup
1238
+ #: app/backwpup_dojob.php:1132
1239
+ msgid "Rackspase Cloud Container not exists:"
1240
+ msgstr "Rackspase Cloud Container existiert nicht:"
1241
+
1242
+ #@ backwpup
1243
+ #: app/backwpup_dojob.php:1144
1244
+ msgid "Backup File transferred to RSC://"
1245
+ msgstr "Datensicherungs-Datei transferiert zu RSC://"
1246
+
1247
+ #@ backwpup
1248
+ #: app/backwpup_dojob.php:1147
1249
+ msgid "Can not transfer backup to RSC."
1250
+ msgstr "Datensicherung kann nicht zu RSC transferiert werden."
1251
+
1252
+ #@ backwpup
1253
+ #: app/backwpup_dojob.php:1169
1254
+ msgid "Can not delete file on RSC://"
1255
+ msgstr "Datei kann nicht gel&ouml;scht werden auf RSC://"
1256
+
1257
+ #@ backwpup
1258
+ #: app/backwpup_dojob.php:1172
1259
+ msgid "files deleted on Racspase Cloud Container!"
1260
+ msgstr "Dateien gel&ouml;scht auf dem Rackspase Cloud Container!"
1261
+
1262
+ #@ default
1263
+ #: app/compatibility/class-wp-list-table.php:181
1264
+ msgid "No items found."
1265
+ msgstr "Keine Eintr&auml;ge gefunden."
1266
+
1267
+ #@ default
1268
+ #: app/compatibility/class-wp-list-table.php:363
1269
+ msgid "Show all dates"
1270
+ msgstr "Zeige alle Daten"
1271
+
1272
+ #@ default
1273
+ #: app/compatibility/class-wp-list-table.php:391
1274
+ msgid "List View"
1275
+ msgstr "Listenansicht"
1276
+
1277
+ #@ default
1278
+ #: app/compatibility/class-wp-list-table.php:392
1279
+ msgid "Excerpt View"
1280
+ msgstr "Auszugsansicht"
1281
+
1282
+ #@ default
1283
+ #: app/compatibility/class-wp-list-table.php:418
1284
+ #, php-format
1285
+ msgid "%s pending"
1286
+ msgstr "%s anstehend"
1287
+
1288
+ #@ default
1289
+ #: app/compatibility/class-wp-list-table.php:474
1290
+ #: app/compatibility/class-wp-list-table.php:870
1291
+ #, php-format
1292
+ msgid "1 item"
1293
+ msgid_plural "%s items"
1294
+ msgstr[0] "1 St&uuml;ck"
1295
+ msgstr[1] "%s St&uuml;cke"
1296
+
1297
+ #@ default
1298
+ #: app/compatibility/class-wp-list-table.php:492
1299
+ msgid "Go to the first page"
1300
+ msgstr "Gehen Sie zur ersten Seite"
1301
+
1302
+ #@ default
1303
+ #: app/compatibility/class-wp-list-table.php:499
1304
+ msgid "Go to the previous page"
1305
+ msgstr "Gehen Sie zur vorherigen Seite"
1306
+
1307
+ #@ default
1308
+ #: app/compatibility/class-wp-list-table.php:508
1309
+ msgid "Current page"
1310
+ msgstr "Aktuelle Seite"
1311
+
1312
+ #@ default
1313
+ #: app/compatibility/class-wp-list-table.php:519
1314
+ msgid "Go to the next page"
1315
+ msgstr "Gehen Sie zur n&auml;chsten Seite"
1316
+
1317
+ #@ default
1318
+ #: app/compatibility/class-wp-list-table.php:526
1319
+ msgid "Go to the last page"
1320
+ msgstr "Gehen Sie zur letzten Seite"
1321
+
1322
+ #@ backwpup
1323
+ #: app/php-functions.php:52
1324
+ msgid "BackWPup Manage Backups"
1325
+ msgstr "BackWPup-Datensicherungen verwalten"
1326
+
1327
+ #@ backwpup
1328
+ #: app/php-functions.php:79
1329
+ msgid "BackWPup View Logs"
1330
+ msgstr "BackWPup-Anzeige-Logdateien"
1331
+
1332
+ #@ backwpup
1333
+ #: app/php-functions.php:203
1334
+ msgid "Backups"
1335
+ msgstr "Datensicherungen"
1336
+
1337
+ #@ default
1338
+ #: app/php5-functions.php:22
1339
+ msgid "New"
1340
+ msgstr "Neu"
1341
+
1342
+ #@ backwpup
1343
+ #: app/php5-functions.php:554
1344
+ msgid "Missing Access Key ID!"
1345
+ msgstr "Access Key ID wird vermisst!"
1346
+
1347
+ #@ backwpup
1348
+ #: app/php5-functions.php:561
1349
+ msgid "Missing Secret Access Key!"
1350
+ msgstr "Secret Access Key wird vermisst!"
1351
+
1352
+ #@ backwpup
1353
+ #: app/php5-functions.php:617
1354
+ #: app/php5-functions.php:743
1355
+ msgid "Missing Username!"
1356
+ msgstr "Falscher Benutzername!"
1357
+
1358
+ #@ backwpup
1359
+ #: app/php5-functions.php:624
1360
+ msgid "Missing API Key!"
1361
+ msgstr "API-Schl&uuml;ssel wird vermisst!"
1362
+
1363
+ #@ backwpup
1364
+ #: app/php5-functions.php:645
1365
+ msgid "No Containerss found!"
1366
+ msgstr "Keine Container gefunden!"
1367
+
1368
+ #@ backwpup
1369
+ #: app/php-functions.php:797
1370
+ msgid "- WordPress 2.8 or heiger needed!"
1371
+ msgstr "- WordPress 2.8 oder h&ouml;her wird ben&ouml;tigt!"
1372
+
1373
+ #@ backwpup
1374
+ #: app/php-functions.php:801
1375
+ msgid "- PHP 5.2.0 or higher needed!"
1376
+ msgstr "- PHP 5.2.0 oder h&ouml;her wird ben&ouml;tigt!"
1377
+
1378
+ #@ backwpup
1379
+ #: app/php-functions.php:811
1380
+ msgid "- Logs Folder not writeable:"
1381
+ msgstr "- Logdateien-Ordner ist nicht beschreibbar:"
1382
+
1383
+ #@ backwpup
1384
+ #: app/php-functions.php:820
1385
+ msgid "- Temp Folder not writeable:"
1386
+ msgstr "- Temp-Ordner ist nicht beschreibbar:"
1387
+
1388
+ #@ backwpup
1389
+ #: app/php-functions.php:825
1390
+ msgid "- Please Check Scheduling time for Job:"
1391
+ msgstr "- Bitte &uuml;berpr&uuml;fen Sie die Zeitplanung f&uuml;r den Auftrag (Scheduling):"
1392
+
1393
+ #@ backwpup
1394
+ #: app/php-functions.php:828
1395
+ msgid "- WP-Cron don't working please check it!"
1396
+ msgstr "- WP-Cron arbeitet nicht, bitte &uuml;berpr&uuml;fen Sie die Funktion!"
1397
+
1398
+ #@ default
1399
+ #: app/list-tables.php:22
1400
+ #: app/list-tables.php:198
1401
+ #: app/list-tables.php:375
1402
+ msgid "No rights"
1403
+ msgstr "Keine Rechte"
1404
+
1405
+ #@ backwpup
1406
+ #: app/list-tables.php:41
1407
+ msgid "No Jobs."
1408
+ msgstr "Keine Auftr&auml;ge."
1409
+
1410
+ #@ backwpup
1411
+ #: app/list-tables.php:58
1412
+ msgid "Information"
1413
+ msgstr "Information"
1414
+
1415
+ #@ backwpup
1416
+ #: app/list-tables.php:111
1417
+ msgid "Clear"
1418
+ msgstr "Leeren"
1419
+
1420
+ #@ backwpup
1421
+ #: app/list-tables.php:133
1422
+ msgid "Files Size:"
1423
+ msgstr "Gr&ouml;&szlig;e der Dateien:"
1424
+
1425
+ #@ backwpup
1426
+ #: app/list-tables.php:135
1427
+ msgid "Files count:"
1428
+ msgstr "Dateiz&auml;hler:"
1429
+
1430
+ #@ backwpup
1431
+ #: app/list-tables.php:142
1432
+ msgid "DB Tables:"
1433
+ msgstr "Datenbank-Tabellen:"
1434
+
1435
+ #@ backwpup
1436
+ #: app/list-tables.php:143
1437
+ msgid "DB Rows:"
1438
+ msgstr "Datenbank-Zeilen:"
1439
+
1440
+ #@ backwpup
1441
+ #: app/list-tables.php:159
1442
+ msgid "<a href=\"http://wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a>:"
1443
+ msgstr "<a href=\"http://de.wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a>:"
1444
+
1445
+ #@ backwpup
1446
+ #: app/list-tables.php:249
1447
+ msgid "No Logs."
1448
+ msgstr "Keine Logdateien."
1449
+
1450
+ #@ backwpup
1451
+ #: app/list-tables.php:173
1452
+ #: app/list-tables.php:318
1453
+ #: app/list-tables.php:486
1454
+ msgid "Download"
1455
+ msgstr "Herunterladen"
1456
+
1457
+ #@ backwpup
1458
+ #: app/list-tables.php:411
1459
+ msgid "No Backups."
1460
+ msgstr "Keine Datensicherungen."
1461
+
1462
+ #@ backwpup
1463
+ #: app/list-tables.php:425
1464
+ msgid "Backupfile"
1465
+ msgstr "Datensicherungs-Datei"
1466
+
1467
+ #@ backwpup
1468
+ #: app/list-tables.php:485
1469
+ msgid ""
1470
+ "You are about to delete this Backup Archive. \n"
1471
+ " 'Cancel' to stop, 'OK' to delete."
1472
+ msgstr ""
1473
+ "Sie sind dabei dieses Datensicherungs-Archiv zu l&ouml;schen. \n"
1474
+ " 'Abbrechen' um zu stoppen, 'OK' um zu l&ouml;schen."
1475
+
1476
+ #@ backwpup
1477
+ #: app/list-tables.php:503
1478
+ msgid "?"
1479
+ msgstr "?"
1480
+
1481
+ #@ backwpup
1482
+ #: app/options-edit-job.php:70
1483
+ msgid "Minutes: "
1484
+ msgstr "Minuten: "
1485
+
1486
+ #@ backwpup
1487
+ #: app/options-edit-job.php:78
1488
+ #: app/options-edit-job.php:95
1489
+ #: app/options-edit-job.php:112
1490
+ #: app/options-edit-job.php:130
1491
+ #: app/options-edit-job.php:154
1492
+ msgid "Any (*)"
1493
+ msgstr "Egal (*)"
1494
+
1495
+ #@ backwpup
1496
+ #: app/options-edit-job.php:87
1497
+ msgid "Hours:"
1498
+ msgstr "Stunden:"
1499
+
1500
+ #@ backwpup
1501
+ #: app/options-edit-job.php:104
1502
+ msgid "Days:"
1503
+ msgstr "Tage:"
1504
+
1505
+ #@ default
1506
+ #: app/options-edit-job.php:138
1507
+ msgid "Augest"
1508
+ msgstr "August"
1509
+
1510
+ #@ default
1511
+ #: app/options-edit-job.php:155
1512
+ msgid "Sunday"
1513
+ msgstr "Sonntag"
1514
+
1515
+ #@ default
1516
+ #: app/options-edit-job.php:156
1517
+ msgid "Monday"
1518
+ msgstr "Montag"
1519
+
1520
+ #@ default
1521
+ #: app/options-edit-job.php:157
1522
+ msgid "Tuesday"
1523
+ msgstr "Dienstag"
1524
+
1525
+ #@ default
1526
+ #: app/options-edit-job.php:158
1527
+ msgid "Wednesday"
1528
+ msgstr "Mittwoch"
1529
+
1530
+ #@ default
1531
+ #: app/options-edit-job.php:159
1532
+ msgid "Thursday"
1533
+ msgstr "Donnerstag"
1534
+
1535
+ #@ default
1536
+ #: app/options-edit-job.php:160
1537
+ msgid "Friday"
1538
+ msgstr "Freitag"
1539
+
1540
+ #@ default
1541
+ #: app/options-edit-job.php:161
1542
+ msgid "Saturday"
1543
+ msgstr "Samstag"
1544
+
1545
+ #@ backwpup
1546
+ #: app/options-edit-job.php:166
1547
+ msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a> job schedule:"
1548
+ msgstr "Arbeiten nach der <a href=\"http://de.wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a>-Auftragsplanung:"
1549
+
1550
+ #@ default
1551
+ #: app/options-edit-job.php:167
1552
+ msgid "Next runtime:"
1553
+ msgstr "N&auml;chster Durchlauf:"
1554
+
1555
+ #@ backwpup
1556
+ #: app/options-edit-job.php:173
1557
+ msgid "Backup File"
1558
+ msgstr "Datensicherungs-Datei"
1559
+
1560
+ #@ backwpup
1561
+ #: app/options-edit-job.php:175
1562
+ msgid "File Prefix:"
1563
+ msgstr "Datei-Vorsilbe:"
1564
+
1565
+ #@ backwpup
1566
+ #: app/options-edit-job.php:177
1567
+ msgid "File Formart:"
1568
+ msgstr "Dateiformat:"
1569
+
1570
+ #@ backwpup
1571
+ #: app/options-edit-job.php:180
1572
+ #: app/options-edit-job.php:182
1573
+ msgid "Zip"
1574
+ msgstr "Zip"
1575
+
1576
+ #@ backwpup
1577
+ #: app/options-edit-job.php:183
1578
+ msgid "Tar"
1579
+ msgstr "Tar"
1580
+
1581
+ #@ backwpup
1582
+ #: app/options-edit-job.php:185
1583
+ #: app/options-edit-job.php:187
1584
+ msgid "Tar GZip"
1585
+ msgstr "Tar GZip"
1586
+
1587
+ #@ backwpup
1588
+ #: app/options-edit-job.php:189
1589
+ #: app/options-edit-job.php:191
1590
+ msgid "Tar BZip2"
1591
+ msgstr "Tar BZip2"
1592
+
1593
+ #@ backwpup
1594
+ #: app/options-edit-job.php:246
1595
+ msgid "root"
1596
+ msgstr "root"
1597
+
1598
+ #@ backwpup
1599
+ #: app/options-edit-job.php:249
1600
+ #: app/options-edit-job.php:265
1601
+ #: app/options-edit-job.php:281
1602
+ #: app/options-edit-job.php:297
1603
+ #: app/options-edit-job.php:313
1604
+ msgid "Exclude:"
1605
+ msgstr "Ausschlie&szlig;en:"
1606
+
1607
+ #@ backwpup
1608
+ #: app/options-edit-job.php:262
1609
+ msgid "Content"
1610
+ msgstr "Inhalt"
1611
+
1612
+ #@ backwpup
1613
+ #: app/options-edit-job.php:278
1614
+ msgid "Plugins"
1615
+ msgstr "Plugins"
1616
+
1617
+ #@ backwpup
1618
+ #: app/options-edit-job.php:294
1619
+ msgid "Themes"
1620
+ msgstr "Themes (Templates)"
1621
+
1622
+ #@ backwpup
1623
+ #: app/options-edit-job.php:310
1624
+ msgid "Blog Uploads"
1625
+ msgstr "Blog-Uploads"
1626
+
1627
+ #@ backwpup
1628
+ #: app/options-edit-job.php:378
1629
+ msgid "Create Bucket:"
1630
+ msgstr "Erstelle Bucket:"
1631
+
1632
+ #@ backwpup
1633
+ #: app/options-edit-job.php:378
1634
+ msgid "Bucket Region"
1635
+ msgstr "Bucket Region"
1636
+
1637
+ #@ backwpup
1638
+ #: app/options-edit-job.php:381
1639
+ msgid "Max. Backup Files in Bucket Folder:"
1640
+ msgstr "Maximale Anzahl Datensicherungs-Dateien im Bucket-Ordner:"
1641
+
1642
+ #@ backwpup
1643
+ #: app/options-edit-job.php:382
1644
+ msgid "Save Backups with reduced redundancy!"
1645
+ msgstr "Sichere Datensicherungen mit reduzierter Redundanz!"
1646
+
1647
+ #@ backwpup
1648
+ #: app/options-edit-job.php:410
1649
+ msgid "Backup to Rackspace Cloud"
1650
+ msgstr "Datensicherung in die Rackspase Cloud"
1651
+
1652
+ #@ backwpup
1653
+ #: app/options-edit-job.php:414
1654
+ msgid "API Key:"
1655
+ msgstr "API-Schl&uuml;ssel"
1656
+
1657
+ #@ backwpup
1658
+ #: app/options-edit-job.php:397
1659
+ #: app/options-edit-job.php:416
1660
+ msgid "Container:"
1661
+ msgstr "Container:"
1662
+
1663
+ #@ backwpup
1664
+ #: app/options-edit-job.php:400
1665
+ #: app/options-edit-job.php:419
1666
+ msgid "Create Container:"
1667
+ msgstr "Erstelle Container:"
1668
+
1669
+ #@ backwpup
1670
+ #: app/options-edit-job.php:401
1671
+ #: app/options-edit-job.php:420
1672
+ msgid "Directory in Container:"
1673
+ msgstr "Verzeichnis im Container:"
1674
+
1675
+ #@ backwpup
1676
+ #: app/options-edit-job.php:403
1677
+ #: app/options-edit-job.php:422
1678
+ msgid "Max. Backup Files in Container Folder:"
1679
+ msgstr "Maximale Anzahl von Datensicherungs-Dateien im Container-Ordner:"
1680
+
1681
+ #@ backwpup
1682
+ #: app/options-save.php:63
1683
+ msgid "Backup Cleand by User!!!"
1684
+ msgstr "Datensicherung ges&auml;ubert vom Benutzer!!!"
1685
+
1686
+ #@ backwpup
1687
+ #: app/options-save.php:616
1688
+ #, php-format
1689
+ msgid "Job '%1' changes saved."
1690
+ msgstr "Auftrag '%1' Ver&auml;nderungen gepeichert."
1691
+
1692
+ #@ backwpup
1693
+ #: app/options-save.php:616
1694
+ msgid "Jobs overview."
1695
+ msgstr "Auftrags&uuml;berblick"
1696
+
1697
+ #@ backwpup
1698
+ #: app/backwpup_dojob.php:614
1699
+ msgid "File or Folder is not readable:"
1700
+ msgstr "Datei oder Ordner ist nicht lesbar:"
1701
+
1702
+ #@ backwpup
1703
+ #: app/backwpup_dojob.php:616
1704
+ msgid "Link not followed:"
1705
+ msgstr "Link nicht gefolgt:"
1706
+
1707
+ #@ backwpup
1708
+ #: app/options-edit-job.php:362
1709
+ msgid "Use FTP Passiv mode."
1710
+ msgstr "FTP-Passiv-Modus benutzen."
1711
+
1712
+ #@ backwpup
1713
+ #: app/backwpup_dojob.php:685
1714
+ msgid "Files to Backup:"
1715
+ msgstr "Dateien zur Datensicherung:"
1716
+
1717
+ #@ backwpup
1718
+ #: app/backwpup_dojob.php:686
1719
+ msgid "Size of all Files:"
1720
+ msgstr "Gr&ouml;&szlig;e aller Dateien:"
1721
+
1722
+ #@ backwpup
1723
+ #: app/backwpup_dojob.php:874
1724
+ msgid "Connected by SSL-FTP to Server:"
1725
+ msgstr "Verbunden via SSL-FTP zum Server:"
1726
+
1727
+ #@ backwpup
1728
+ #: app/backwpup_dojob.php:876
1729
+ msgid "Can not connect by SSL-FTP to Server:"
1730
+ msgstr "Verbindung via SSL-FTP zum Server kann nicht hergestellt werden:"
1731
+
1732
+ #@ backwpup
1733
+ #: app/backwpup_dojob.php:880
1734
+ msgid "PHP Function to connect with SSL-FTP to Server not exists!"
1735
+ msgstr "Die PHP-Funktion, um via SSL-FTP zum Server zu verbinden, existiert nicht!"
1736
+
1737
+ #@ backwpup
1738
+ #: app/backwpup_dojob.php:886
1739
+ msgid "Connected to FTP Server:"
1740
+ msgstr "Verbunden mit dem FTP-Server:"
1741
+
1742
+ #@ backwpup
1743
+ #: app/backwpup_dojob.php:888
1744
+ msgid "Can not connect to FTP Server:"
1745
+ msgstr "Verbindung zu FTP-Server kann nicht hergestellt werden:"
1746
+
1747
+ #@ backwpup
1748
+ #: app/backwpup_dojob.php:917
1749
+ msgid "Entering Passive Mode"
1750
+ msgstr "Passivmodus wird betreten"
1751
+
1752
+ #@ backwpup
1753
+ #: app/backwpup_dojob.php:922
1754
+ msgid "Entering Normal Mode"
1755
+ msgstr "Normalmodus wird betreten"
1756
+
1757
+ #@ backwpup
1758
+ #: app/backwpup_dojob.php:924
1759
+ msgid "Can not Entering Normal Mode"
1760
+ msgstr "Normalmodus kann nicht betreten werden"
1761
+
1762
+ #@ backwpup
1763
+ #: app/backwpup_dojob.php:932
1764
+ msgid "Error getting SYSTYPE"
1765
+ msgstr "Fehler, SYSTYPE wird angezeigt"
1766
+
1767
+ #@ backwpup
1768
+ #: app/options-edit-job.php:361
1769
+ msgid "Use SSL-FTP Connection."
1770
+ msgstr "Benutze SSL-FTP-Verbindung."
1771
+
1772
+ #@ backwpup
1773
+ #: app/options-edit-job.php:429
1774
+ msgid "Backup to Dropbox"
1775
+ msgstr "Datensicherung in die Dropbox"
1776
+
1777
+ #@ backwpup
1778
+ #: app/options-edit-job.php:437
1779
+ #: app/options-edit-job.php:455
1780
+ msgid "Directory:"
1781
+ msgstr "Ordner:"
1782
+
1783
+ #@ backwpup
1784
+ #. translators: plugin header field 'PluginURI'
1785
+ #: backwpup.php:0
1786
+ msgid "http://danielhuesken.de/portfolio/backwpup/"
1787
+ msgstr "http://danielhuesken.de/portfolio/backwpup/"
1788
+
1789
+ #@ backwpup
1790
+ #. translators: plugin header field 'Description'
1791
+ #: backwpup.php:0
1792
+ msgid "Backup and more of your WordPress Blog Database and Files."
1793
+ msgstr "Datensicherung und mehr von Ihrer WordPress-Datenbank sowie den Dateien."
1794
+
1795
+ #@ backwpup
1796
+ #. translators: plugin header field 'Author'
1797
+ #: backwpup.php:0
1798
+ msgid "Daniel H&uuml;sken"
1799
+ msgstr "Daniel H&uuml;sken"
1800
+
1801
+ #@ backwpup
1802
+ #. translators: plugin header field 'AuthorURI'
1803
+ #: backwpup.php:0
1804
+ msgid "http://danielhuesken.de"
1805
+ msgstr "http://danielhuesken.de"
1806
+
1807
+ #@ default
1808
+ #: app/compatibility/class-wp-list-table.php:515
1809
+ #, php-format
1810
+ msgctxt "paging"
1811
+ msgid "%1$s of %2$s"
1812
+ msgstr "%1$s von %2$s"
1813
+
1814
+ #@ backwpup
1815
+ #: app/backwpup_dojob.php:1097
1816
+ msgid "Amazon S3 API:"
1817
+ msgstr "Amazon S3 API:"
1818
+
1819
+ #@ backwpup
1820
+ #: app/backwpup_dojob.php:1285
1821
+ msgid "Backup File transferred to DropBox."
1822
+ msgstr "Datensicherungs-Datei wird zur Dropbox &uuml;bertragen."
1823
+
1824
+ #@ backwpup
1825
+ #: app/backwpup_dojob.php:1516
1826
+ msgid "BackWPup Log from"
1827
+ msgstr "BackWPup Log-Daten von"
1828
+
1829
+ #@ default
1830
+ #@ backwpup
1831
+ #: app/list-tables.php:46
1832
+ #: app/list-tables.php:107
1833
+ msgid "Export"
1834
+ msgstr "Export"
1835
+
1836
+ #@ backwpup
1837
+ #: app/list-tables.php:173
1838
+ msgid "Download last Backup"
1839
+ msgstr "Letzte Datensicherung herunterladen"
1840
+
1841
+ #@ backwpup
1842
+ #: app/list-tables.php:175
1843
+ msgid "View last Log"
1844
+ msgstr "Letzte Log-Daten ansehen"
1845
+
1846
+ #@ backwpup
1847
+ #: app/list-tables.php:175
1848
+ msgid "Log"
1849
+ msgstr "Log-Daten"
1850
+
1851
+ #@ backwpup
1852
+ #: app/options-edit-job.php:378
1853
+ msgid "US-East (Northern Virginia)"
1854
+ msgstr "US-Ost (Nord-Virginia)"
1855
+
1856
+ #@ backwpup
1857
+ #: app/options-edit-job.php:378
1858
+ msgid "US-West (Northern California)"
1859
+ msgstr "US-West (Nordkalifornien)"
1860
+
1861
+ #@ backwpup
1862
+ #: app/options-edit-job.php:378
1863
+ msgid "EU (Ireland)"
1864
+ msgstr "EU (Irland)"
1865
+
1866
+ #@ backwpup
1867
+ #: app/options-edit-job.php:378
1868
+ msgid "Asia Pacific (Singapore)"
1869
+ msgstr "Asien/ Pazifik (Singapur)"
1870
+
1871
+ #@ backwpup
1872
+ #: app/options-settings.php:63
1873
+ msgid "Gzip Log files!"
1874
+ msgstr "Gzip Log-Dateien!"
1875
+
1876
+ #@ backwpup
1877
+ #: app/options-tools.php:61
1878
+ msgid "Import Jobs settings"
1879
+ msgstr "Auftrags-Import-Einstellungen"
1880
+
1881
+ #@ backwpup
1882
+ #: app/options-tools.php:63
1883
+ msgid "Select File to import:"
1884
+ msgstr "Datei zum Importieren ausw&auml;hlen:"
1885
+
1886
+ #@ backwpup
1887
+ #: app/options-tools.php:64
1888
+ #: app/options-tools.php:66
1889
+ msgid "Upload"
1890
+ msgstr "Hochladen"
1891
+
1892
+ #@ backwpup
1893
+ #: app/options-tools.php:67
1894
+ msgid "Select Jobs to Import:"
1895
+ msgstr "Auftr&auml;ge zum Importieren ausw&auml;hlen:"
1896
+
1897
+ #@ backwpup
1898
+ #: app/options-tools.php:71
1899
+ msgid "Import Type"
1900
+ msgstr "Import-Typ"
1901
+
1902
+ #@ backwpup
1903
+ #: app/options-tools.php:71
1904
+ msgid "No Import"
1905
+ msgstr "Kein Import"
1906
+
1907
+ #@ backwpup
1908
+ #: app/options-tools.php:73
1909
+ msgid "Overwrite"
1910
+ msgstr "&Uuml;berschreiben"
1911
+
1912
+ #@ backwpup
1913
+ #: app/options-tools.php:73
1914
+ msgid "Append"
1915
+ msgstr "Anh&auml;ngen"
1916
+
1917
+ #@ backwpup
1918
+ #: app/options-tools.php:75
1919
+ #: app/options-tools.php:79
1920
+ #: app/options-tools.php:81
1921
+ msgid "Import"
1922
+ msgstr "Import"
1923
+
1924
+ #@ backwpup
1925
+ #: app/options-tools.php:117
1926
+ msgid "Jobs imported!"
1927
+ msgstr "Auftr&auml;ge importiert!"
1928
+
1929
+ #@ backwpup
1930
+ #: app/backwpup_dojob.php:1193
1931
+ msgid "Microsoft Azure Container not exists:"
1932
+ msgstr "Microsoft Azure Container existiert nicht:"
1933
+
1934
+ #@ backwpup
1935
+ #: app/backwpup_dojob.php:1196
1936
+ msgid "Connected to Microsoft Azure Container:"
1937
+ msgstr "Mit Microsoft Azure Container verbinden:"
1938
+
1939
+ #@ backwpup
1940
+ #: app/backwpup_dojob.php:1202
1941
+ msgid "Backup File transferred to azure://"
1942
+ msgstr "Datensicherungs-Datei transferiert zu azure://"
1943
+
1944
+ #@ backwpup
1945
+ #: app/backwpup_dojob.php:1205
1946
+ msgid "Can not transfer backup to Microsoft Azure."
1947
+ msgstr "Die Datensicherungs-Datei kann nicht zu Microsoft Azure transferiert werden."
1948
+
1949
+ #@ backwpup
1950
+ #: app/backwpup_dojob.php:1226
1951
+ msgid "files deleted on Microsoft Azure Container!"
1952
+ msgstr "Dateien gel&ouml;scht im Microsoft Azure Container!"
1953
+
1954
+ #@ backwpup
1955
+ #: app/backwpup_dojob.php:1231
1956
+ msgid "Microsoft Azure API:"
1957
+ msgstr "Microsoft Azure API (Schnittstelle):"
1958
+
1959
+ #@ backwpup
1960
+ #: app/php5-functions.php:585
1961
+ msgid "No Buckets found!"
1962
+ msgstr "Keine Buckets gefunden!"
1963
+
1964
+ #@ backwpup
1965
+ #: app/php5-functions.php:679
1966
+ msgid "Missing Hostname!"
1967
+ msgstr "Hostname (Server) nicht angegeben!"
1968
+
1969
+ #@ backwpup
1970
+ #: app/php5-functions.php:686
1971
+ msgid "Missing Account Name!"
1972
+ msgstr "Kontoname (Benutzername) nicht angegeben!"
1973
+
1974
+ #@ backwpup
1975
+ #: app/php5-functions.php:693
1976
+ msgid "Missing Access Key!"
1977
+ msgstr "Zugangsschl&uuml;ssel (Access Key) nicht angegeben!"
1978
+
1979
+ #@ backwpup
1980
+ #: app/php5-functions.php:710
1981
+ msgid "No Container found!"
1982
+ msgstr "Kein Container gefunden!"
1983
+
1984
+ #@ backwpup
1985
+ #: app/options-edit-job.php:378
1986
+ msgid "Asia Pacific (Japan)"
1987
+ msgstr "Asien Pazifik (Japan)"
1988
+
1989
+ #@ backwpup
1990
+ #: app/options-edit-job.php:389
1991
+ msgid "Backup to Micosoft Azure (Blob)"
1992
+ msgstr "Datensicherung zu Microsoft Azure (Blob)"
1993
+
1994
+ #@ backwpup
1995
+ #: app/options-edit-job.php:391
1996
+ msgid "Host:"
1997
+ msgstr "Host (Server):"
1998
+
1999
+ #@ backwpup
2000
+ #: app/options-edit-job.php:392
2001
+ msgid "Normely: blob.core.windows.net"
2002
+ msgstr "Normalerweise: blob.core.windows.net"
2003
+
2004
+ #@ backwpup
2005
+ #: app/options-edit-job.php:393
2006
+ msgid "Account Name:"
2007
+ msgstr "Kontoname/ Benutzername:"
2008
+
2009
+ #@ backwpup
2010
+ #: app/options-edit-job.php:395
2011
+ msgid "Access Key:"
2012
+ msgstr "Zugangsschl&uuml;ssel (Access Key):"
2013
+
2014
+ #@ backwpup
2015
+ #: app/backwpup_dojob.php:1287
2016
+ msgid "Can not transfere Backup file to DropBox:"
2017
+ msgstr "Datensicherungs-Datei kann nicht zu Dropbox transferiert werden:"
2018
+
2019
+ #@ backwpup
2020
+ #: app/backwpup_dojob.php:1308
2021
+ msgid "files deleted on DropBox Folder!"
2022
+ msgstr "Dateien gel&ouml;scht im Dropbox-Ordner!"
2023
+
2024
+ #@ backwpup
2025
+ #: app/backwpup_dojob.php:1312
2026
+ msgid "DropBox API:"
2027
+ msgstr "Dropbox-API-Schnittstelle:"
2028
+
2029
+ #@ backwpup
2030
+ #: app/options-edit-job.php:369
2031
+ #: app/options-edit-job.php:389
2032
+ #: app/options-edit-job.php:410
2033
+ #: app/options-edit-job.php:429
2034
+ #: app/options-edit-job.php:446
2035
+ msgid "Create Account"
2036
+ msgstr "Konto erstellen"
2037
+
2038
+ #@ backwpup
2039
+ #: app/options-edit-job.php:371
2040
+ #: app/options-edit-job.php:395
2041
+ #: app/options-edit-job.php:414
2042
+ msgid "Find it"
2043
+ msgstr "Finden"
2044
+
2045
+ #@ backwpup
2046
+ #: app/options-edit-job.php:439
2047
+ msgid "Max. Backup Files in Dopbox Folder:"
2048
+ msgstr "Maximale Anzahl von Datensicherungs-Dateien im Dropbox-Ordner:"
2049
+
2050
+ #@ backwpup
2051
+ #: app/php-functions.php:330
2052
+ msgid "FTP extension needed for FTP!"
2053
+ msgstr "Die FTP-Erweiterung wird f&uuml;r FTP ben&ouml;tigt!"
2054
+
2055
+ #@ backwpup
2056
+ #: app/php-functions.php:336
2057
+ #: app/php-functions.php:342
2058
+ msgid "Curl and Json extensions needed for DropBox!"
2059
+ msgstr "Die Curl- und Json-Erweiterungen werden f&uuml;r Dropbox ben&ouml;tigt!"
2060
+
2061
+ #@ backwpup
2062
+ #: app/php-functions.php:348
2063
+ msgid "Curl extension needed for Amazon S3!"
2064
+ msgstr "Die Curl-Erweiterung wird f&uuml;r Amazon S3 ben&ouml;tigt!"
2065
+
2066
+ #@ backwpup
2067
+ #: app/php-functions.php:354
2068
+ msgid "Curl extension needed for RackSpaceCloud!"
2069
+ msgstr "Die Curl-Erweiterung wird f&uuml;r RackSpaceCloud ben&ouml;tigt!"
2070
+
2071
+ #@ backwpup
2072
+ #: app/php-functions.php:360
2073
+ msgid "Curl extension needed for Microsoft Azure!"
2074
+ msgstr "Die Curl-Erweiterung wird f&uuml;r Microsoft Azure ben&ouml;tigt!"
2075
+
2076
+ #@ backwpup
2077
+ #: app/backwpup_dojob.php:776
2078
+ msgid "File Name to Long to save corectly in TAR Backup Archive:"
2079
+ msgstr "Der Dateiname ist zu lang zum Speichern im TAR-Datensicherungs-Archiv:"
2080
+
2081
+ #@ backwpup
2082
+ #: app/backwpup_dojob.php:778
2083
+ msgid "File Path to Long to save corectly in TAR Backup Archive:"
2084
+ msgstr "Der Dateipfad ist zu lang zum korrekten Speichern im TAR-Datensicherungs-Archiv:"
2085
+
2086
+ #@ backwpup
2087
+ #: app/backwpup_dojob.php:1271
2088
+ msgid "Authed to DropBox from "
2089
+ msgstr "Authentifiziert mit Dropbox von "
2090
+
2091
+ #@ backwpup
2092
+ #: app/backwpup_dojob.php:1276
2093
+ msgid "No free space left on DropBox!!!"
2094
+ msgstr "Kein freier Speicherplatz mehr &uuml;brig auf Dropbox!!!"
2095
+
2096
+ #@ backwpup
2097
+ #: app/backwpup_dojob.php:1279
2098
+ msgid "Free Space on DropBox: "
2099
+ msgstr "Freier Speicherplatz auf Dropbox: "
2100
+
2101
+ #@ backwpup
2102
+ #: app/options-edit-job.php:122
2103
+ msgid "Day of Month:"
2104
+ msgstr "Tag des Monats:"
2105
+
2106
+ #@ backwpup
2107
+ #: app/options-edit-job.php:146
2108
+ msgid "Day of Week:"
2109
+ msgstr "Wochentag:"
2110
+
2111
+ #@ backwpup
2112
+ #: app/options-edit-job.php:203
2113
+ msgid "Only send an e-mail if there are errors."
2114
+ msgstr "Eine E-Mail nur senden, wenn Fehler auftraten."
2115
+
2116
+ #@ backwpup
2117
+ #: app/options-edit-job.php:224
2118
+ msgid "Database tables to <span style=\"color:red;\">ex</span>clude:"
2119
+ msgstr "Datenbank-Tabellen zum <span style=\"color:red;\">aus</span>schlie&szlig;en:"
2120
+
2121
+ #@ backwpup
2122
+ #: app/options-edit-job.php:235
2123
+ msgid "Use short INSERTs instead of full (with keys)"
2124
+ msgstr "Kurze INSERTs benutzen, statt kompletter (mit Schl&uuml;ssel)"
2125
+
2126
+ #@ backwpup
2127
+ #: app/options-edit-job.php:342
2128
+ msgid "(Leave it empty to store Backups not local!)"
2129
+ msgstr "(Leer lassen, um Datensicherungen nicht lokal zu speichern!)"
2130
+
2131
+ #@ backwpup
2132
+ #: app/options-edit-job.php:360
2133
+ #: app/options-edit-job.php:381
2134
+ #: app/options-edit-job.php:403
2135
+ #: app/options-edit-job.php:422
2136
+ #: app/options-edit-job.php:439
2137
+ #: app/options-edit-job.php:457
2138
+ msgid "(Oldest files will be deleted first.)"
2139
+ msgstr "(&Auml;lteste Dateien werden zuerst gel&ouml;scht.)"
2140
+
2141
+ #@ backwpup
2142
+ #: app/options-edit-job.php:431
2143
+ msgid "Login:"
2144
+ msgstr "Login:"
2145
+
2146
+ #@ backwpup
2147
+ #: app/options-edit-job.php:433
2148
+ msgid "Not authenticated!"
2149
+ msgstr "Nicht authentifiziert!"
2150
+
2151
+ #@ backwpup
2152
+ #: app/options-edit-job.php:433
2153
+ #: app/options-save.php:596
2154
+ msgid "Authenticate!"
2155
+ msgstr "Authentifizieren!"
2156
+
2157
+ #@ backwpup
2158
+ #: app/options-edit-job.php:435
2159
+ msgid "Authenticated!"
2160
+ msgstr "Authentifiziert!"
2161
+
2162
+ #@ backwpup
2163
+ #: app/options-edit-job.php:435
2164
+ #: app/options-save.php:607
2165
+ msgid "Delete!"
2166
+ msgstr "L&ouml;schen!"
2167
+
2168
+ #@ backwpup
2169
+ #: app/options-edit-job.php:448
2170
+ #: app/options-edit-job.php:465
2171
+ msgid "E-mail address:"
2172
+ msgstr "E-Mail-Adresse:"
2173
+
2174
+ #@ backwpup
2175
+ #: app/options-save.php:610
2176
+ msgid "Dropbox authentication deleted!"
2177
+ msgstr "Dropbox-Authentifizierung gel&ouml;scht!"
2178
+
2179
+ #@ backwpup
2180
+ #: app/options-settings.php:64
2181
+ msgid "Log a detailed file list."
2182
+ msgstr "Eine detaillierte Dateiliste mitloggen."
2183
+
2184
+ #@ backwpup
2185
+ #: app/options-settings.php:71
2186
+ msgid "Use your host's Cron Job and disable WP-Cron"
2187
+ msgstr "Den Cron-Job Ihres Webhosters/ -Servers benutzen und WP-Cron deaktivieren"
2188
+
2189
+ #@ backwpup
2190
+ #: app/options-tools.php:53
2191
+ msgid "Copy SQL file to blog root folder to use for a restoration."
2192
+ msgstr "Die SQL-Datei in den root-Ordner Ihrer Webseite (bzw. WordPress-Installation) kopieren, damit die Datei f&uuml;r eine Wiederherstellung genutzt werden kann."
2193
+
2194
+ #@ backwpup
2195
+ #: app/php-functions.php:808
2196
+ msgid "- Logs Folder not exists:"
2197
+ msgstr "- Der Log-Daten-Ordner existiert nicht:"
2198
+
2199
+ #@ backwpup
2200
+ #: app/php-functions.php:817
2201
+ msgid "- Temp Folder not exists:"
2202
+ msgstr "- Der Temp-Ordner existiert nicht:"
2203
+
2204
+ #@ backwpup
2205
+ #: app/backwpup_dojob.php:1371
2206
+ msgid "SugarSync API:"
2207
+ msgstr "SugarSync-API:"
2208
+
2209
+ #@ backwpup
2210
+ #: app/options-edit-job.php:446
2211
+ msgid "Backup to SugarSync"
2212
+ msgstr "Datensicherung zu SugarSync"
2213
+
2214
+ #@ backwpup
2215
+ #: app/php5-functions.php:578
2216
+ msgid "S3 Message:"
2217
+ msgstr "S3-Nachricht:"
2218
+
2219
+ #@ backwpup
2220
+ #: app/backwpup_dojob.php:1328
2221
+ msgid "Authed to SugarSync with Nick "
2222
+ msgstr "Authentifiziert mit SugarSync mit Nick "
2223
+
2224
+ #@ backwpup
2225
+ #: app/backwpup_dojob.php:1332
2226
+ msgid "No free space left on SugarSync!!!"
2227
+ msgstr "Sie haben keinen freien Speicherplatz mehr &uuml;brig bei SugarSync!!!"
2228
+
2229
+ #@ backwpup
2230
+ #: app/backwpup_dojob.php:1335
2231
+ msgid "Free Space on SugarSync: "
2232
+ msgstr "Freier Speicherplatz bei SugarSync: "
2233
+
2234
+ #@ backwpup
2235
+ #: app/backwpup_dojob.php:1344
2236
+ msgid "Backup File transferred to SugarSync."
2237
+ msgstr "Datensicherungsdatei zu SugarSync &uuml;bertragen."
2238
+
2239
+ #@ backwpup
2240
+ #: app/backwpup_dojob.php:1346
2241
+ msgid "Can not transfere Backup file to SugarSync:"
2242
+ msgstr "Datensicherungsdatei kann nicht zu SugarSync &uuml;bertragen werden:"
2243
+
2244
+ #@ backwpup
2245
+ #: app/backwpup_dojob.php:1367
2246
+ msgid "files deleted on Sugarsync Folder!"
2247
+ msgstr "Dateien gel&ouml;scht im SugarSync-Ordner!"
2248
+
2249
+ #@ backwpup
2250
+ #: app/options-edit-job.php:452
2251
+ msgid "Root:"
2252
+ msgstr "Root:"
2253
+
2254
+ #@ backwpup
2255
+ #: app/php5-functions.php:750
2256
+ msgid "Missing Password!"
2257
+ msgstr "Passwort fehlt!"
2258
+
2259
+ #@ backwpup
2260
+ #: app/php5-functions.php:770
2261
+ msgid "No Syncfolders found!"
2262
+ msgstr "Keine Sync-Ordner gefunden!"
2263
+
2264
+ #@ backwpup
2265
+ #. translators: plugin header field 'Version'
2266
+ #: backwpup.php:0
2267
+ msgid "1.7.0"
2268
+ msgstr "1.7.0"
2269
+
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === BackWPup ===
2
  Contributors: danielhuesken
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=daniel%40huesken-net%2ede&item_name=Daniel%20Huesken%20Plugin%20Donation&item_number=BackWPup&no_shipping=0&no_note=1&tax=0&bn=PP%2dDonationsBF&charset=UTF%2d8
4
- Tags: backup, admin, file, Database, mysql, Cron, ftp, S3, export, xml, Rackspace, Cloud, Azure, DropBox
5
  Requires at least: 2.8
6
  Tested up to: 3.1.0
7
- Stable tag: 1.6.2
8
 
9
  Backup your WordPress Database and Files, and more!
10
 
@@ -24,6 +24,7 @@ Do backups and more.
24
  * Store backup to Microsoft Azure (Blob)
25
  * Store backup to RackSpaceCloud
26
  * Store backup to DropBox
 
27
  * Send Log/Backup by Email
28
 
29
 
@@ -84,7 +85,7 @@ Please deactivate passive mode and try it again.
84
 
85
  = Disable some destinations for backups =
86
  You can set the following in wp-config.php:
87
- <i>define('BACKWPUP_DESTS','S3,RSC,FTP,DROPBOX,MSAZURE');</i>
88
  all listed destinations are then disabled.
89
  Destinations are:
90
  * MAIL = mail (can't disable)
@@ -94,12 +95,20 @@ Destinations are:
94
  * FTP = FTP Server
95
  * DROPBOX = DropBox
96
  * MSAZURE = Microsoft Azure (Blob)
 
97
 
98
  == Screenshots ==
99
 
100
  1. Job Page
101
 
102
  == Changelog ==
 
 
 
 
 
 
 
103
  = 1.6.2 =
104
  * Dropbox improvements and bug fixes
105
 
1
  === BackWPup ===
2
  Contributors: danielhuesken
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=daniel%40huesken-net%2ede&item_name=Daniel%20Huesken%20Plugin%20Donation&item_number=BackWPup&no_shipping=0&no_note=1&tax=0&bn=PP%2dDonationsBF&charset=UTF%2d8
4
+ Tags: backup, admin, file, Database, mysql, Cron, ftp, S3, export, xml, Rackspace, Cloud, Azure, DropBox, SugarSync
5
  Requires at least: 2.8
6
  Tested up to: 3.1.0
7
+ Stable tag: 1.7.0
8
 
9
  Backup your WordPress Database and Files, and more!
10
 
24
  * Store backup to Microsoft Azure (Blob)
25
  * Store backup to RackSpaceCloud
26
  * Store backup to DropBox
27
+ * Store backup to SugarSync
28
  * Send Log/Backup by Email
29
 
30
 
85
 
86
  = Disable some destinations for backups =
87
  You can set the following in wp-config.php:
88
+ <i>define('BACKWPUP_DESTS','S3,RSC,FTP,DROPBOX,MSAZURE,SUGARSYNC');</i>
89
  all listed destinations are then disabled.
90
  Destinations are:
91
  * MAIL = mail (can't disable)
95
  * FTP = FTP Server
96
  * DROPBOX = DropBox
97
  * MSAZURE = Microsoft Azure (Blob)
98
+ * SUGARSYNC = SugarSync
99
 
100
  == Screenshots ==
101
 
102
  1. Job Page
103
 
104
  == Changelog ==
105
+ = 1.7.0 =
106
+ * Improved Dropbox referer handling
107
+ * Sycurity fix (thanks to Phil Taylor - Sense of Security)
108
+ * Added SugarSync support
109
+ * general improvements
110
+ * bug fixes
111
+
112
  = 1.6.2 =
113
  * Dropbox improvements and bug fixes
114