BackWPup – WordPress Backup Plugin - Version 1.6.1

Version Description

  • Now use web OAuth login for Dropbox! Best thaks to Tijs Verkoyen for his dropbox class.
  • Only Dropbox OAuth tokens are saved!
  • Check Dropbox Quota/Upload Filesize on Job run
  • fixed bug in tar with file/folder names longer than 100 chars
  • changed user capability back to '10' because working with WP lower than 3.0
  • bug fixes for old WordPress versions
  • English Text updates! Best thaks to Marcy Capron.
  • improvements
  • bug fixes
Download this release

Release Info

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

Code changes from version 1.6.0 to 1.6.1

app/backwpup_dojob.php CHANGED
@@ -158,18 +158,42 @@ class backwpup_dojob {
158
 
159
  if (is_file($this->backupdir.$this->backupfile)) { // Put backup file to destination
160
  $dests=explode(',',strtoupper(BACKWPUP_DESTS));
161
- $this->destination_mail();
162
- if (in_array('FTP',$dests))
163
- $this->destination_ftp();
164
- if (in_array('DROPBOX',$dests))
165
- $this->destination_dropbox();
166
- if (in_array('S3',$dests))
167
- $this->destination_s3();
168
- if (in_array('RSC',$dests))
169
- $this->destination_rsc();
170
- if (in_array('MSAZURE',$dests))
171
- $this->destination_msazure();
172
- $this->destination_dir();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  }
174
 
175
  foreach($this->todo as $key => $value) {
@@ -303,7 +327,7 @@ class backwpup_dojob {
303
 
304
  private function _check_folders($folder) {
305
  if (!is_dir($folder)) { //create dir if not exists
306
- if (!mkdir($folder,0777,true)) {
307
  trigger_error(sprintf(__('Can not create Folder: %1$s','backwpup'),$folder),E_USER_ERROR);
308
  return false;
309
  }
@@ -460,7 +484,7 @@ class backwpup_dojob {
460
  }
461
 
462
  private function dump_db_table($table,$status,$file) {
463
-
464
  // create dump
465
  fwrite($file, "\n");
466
  fwrite($file, "--\n");
@@ -535,7 +559,6 @@ class backwpup_dojob {
535
  }
536
  sort($tables);
537
 
538
-
539
  if (sizeof($tables)>0) {
540
  $result=$wpdb->get_results("SHOW TABLE STATUS FROM `".DB_NAME."`;", ARRAY_A); //get table status
541
  if ($sqlerr=mysql_error($wpdb->dbh))
@@ -595,7 +618,6 @@ class backwpup_dojob {
595
  trigger_error(__('No Tables to Dump','backwpup'),E_USER_WARNING);
596
  }
597
 
598
-
599
  //add database file to backupfiles
600
  if (is_readable($this->tempdir.DB_NAME.'.sql')) {
601
  trigger_error(__('Add Database Dump to Backup:','backwpup').' '.DB_NAME.'.sql '.backwpup_formatBytes(filesize($this->tempdir.DB_NAME.'.sql')),E_USER_NOTICE);
@@ -607,26 +629,27 @@ class backwpup_dojob {
607
  }
608
 
609
  private function export_wp() {
610
- if (extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll')) {
 
611
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
612
  $ch = curl_init();
613
  curl_setopt($ch, CURLOPT_URL, plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.substr(md5(md5(SECURE_AUTH_KEY)),10,10));
614
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
615
  curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
616
  curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
617
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
618
  $return=curl_exec($ch);
619
  if (!$return) {
620
  trigger_error(__('cURL:','backwpup').' '.curl_error($ch),E_USER_ERROR);
621
  } else {
622
- $fd=fopen($this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml',"w+");
623
  fwrite($fd,$return);
624
  fclose($fd);
625
  }
626
  curl_close($ch);
627
  } elseif (ini_get('allow_url_fopen')==true or ini_get('allow_url_fopen')==1 or strtolower(ini_get('allow_url_fopen'))=="on") {
628
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
629
- if (copy(plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.substr(md5(md5(SECURE_AUTH_KEY)),10,10),$this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml')) {
630
  trigger_error(__('Export to XML done!','backwpup'),E_USER_NOTICE);
631
  } else {
632
  trigger_error(__('Can not Export to XML!','backwpup'),E_USER_ERROR);
@@ -634,11 +657,11 @@ class backwpup_dojob {
634
  } else {
635
  trigger_error(__('Can not Export to XML! no cURL or allow_url_fopen Support!','backwpup'),E_USER_WARNING);
636
  }
637
- if (is_readable($this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml')) {
638
  //add database file to backupfiles
639
- trigger_error(__('Add XML Export to Backup:','backwpup').' '.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml '.backwpup_formatBytes(filesize($this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml')),E_USER_NOTICE);
640
- $this->allfilesize+=filesize($this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
641
- $this->filelist[]=array(79001=>$this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml',79003=>sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
642
  }
643
  }
644
 
@@ -768,7 +791,6 @@ class backwpup_dojob {
768
  }
769
 
770
  private function zip_files() {
771
-
772
  if (class_exists('ZipArchive')) { //use php zip lib
773
  trigger_error(__('Create Backup Zip file...','backwpup'),E_USER_NOTICE);
774
  $zip = new ZipArchive;
@@ -790,7 +812,6 @@ class backwpup_dojob {
790
  } else {
791
  trigger_error(__('Can not create Backup ZIP file:','backwpup').' '.$res,E_USER_ERROR);
792
  }
793
-
794
  } else { //use PclZip
795
  define( 'PCLZIP_TEMPORARY_DIR', $this->tempdir );
796
  if (!class_exists('PclZip'))
@@ -832,7 +853,7 @@ class backwpup_dojob {
832
  trigger_error(__('Create Backup Archive file...','backwpup'),E_USER_NOTICE);
833
  }
834
 
835
- $this->need_free_memory(1048576); //1MB free memory for zip
836
 
837
  foreach($this->filelist as $key => $files) {
838
  if ($this->cfg['logfilelist'])
@@ -846,10 +867,33 @@ class backwpup_dojob {
846
 
847
  // Get file information
848
  $file_information = stat($files[79001]);
849
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
850
  // Generate the TAR header for this file
851
  $header = pack("a100a8a8a8a12a12a8a1a100a6a2a32a32a8a8a155a12",
852
- substr($files[79003],0,100), //name of file 100
853
  sprintf("%07o", $file_information['mode']), //file mode 8
854
  sprintf("%07o", $file_information['uid']), //owner user ID 8
855
  sprintf("%07o", $file_information['gid']), //owner group ID 8
@@ -858,13 +902,13 @@ class backwpup_dojob {
858
  " ", //checksum for header 8
859
  0, //type of file 0 or null = File, 5=Dir
860
  "", //name of linked file 100
861
- "ustar ", //USTAR indicator 6
862
- " ", //USTAR version 2
863
- "Unknown", //owner user name 32
864
- "Unknown", //owner group name 32
865
  "", //device major number 8
866
  "", //device minor number 8
867
- substr($files[79003],101), //prefix for file name 155
868
  ""); //fill block 512K
869
 
870
  // Computes the unsigned Checksum of a file's header
@@ -917,10 +961,6 @@ class backwpup_dojob {
917
 
918
 
919
  private function destination_ftp() {
920
-
921
- if (empty($this->job['ftphost']) or empty($this->job['ftpuser']) or empty($this->job['ftppass']))
922
- return false;
923
-
924
  $ftpport=21;
925
  $ftphost=$this->job['ftphost'];
926
  if (false !== strpos($this->job['ftphost'],':')) //look for port
@@ -1038,11 +1078,7 @@ class backwpup_dojob {
1038
  }
1039
 
1040
  private function destination_mail() {
1041
- if (empty($this->job['mailaddress']))
1042
- return false;
1043
-
1044
  trigger_error(__('Prepare Sending backup file with mail...','backwpup'),E_USER_NOTICE);
1045
-
1046
  //Create PHP Mailer
1047
  require_once(ABSPATH.WPINC.'/class-phpmailer.php');
1048
  $phpmailer = new PHPMailer();
@@ -1104,10 +1140,6 @@ class backwpup_dojob {
1104
 
1105
  private function destination_s3() {
1106
 
1107
- if (empty($this->job['awsAccessKey']) or empty($this->job['awsSecretKey']) or empty($this->job['awsBucket']))
1108
- return;
1109
-
1110
-
1111
  if (!class_exists('CFRuntime'))
1112
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
1113
 
@@ -1166,18 +1198,9 @@ class backwpup_dojob {
1166
 
1167
  private function destination_rsc() {
1168
 
1169
- if (empty($this->job['rscUsername']) or empty($this->job['rscAPIKey']) or empty($this->job['rscContainer']))
1170
- return;
1171
-
1172
- if (!(extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))) {
1173
- trigger_error(__('Can not load curl extension is needed for Rackspase Cloud!','backwpup'),E_USER_ERROR);
1174
- return;
1175
- }
1176
-
1177
  if (!class_exists('CF_Authentication'))
1178
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
1179
 
1180
-
1181
  $auth = new CF_Authentication($this->job['rscUsername'], $this->job['rscAPIKey']);
1182
  $auth->ssl_use_cabundle();
1183
  try {
@@ -1202,7 +1225,6 @@ class backwpup_dojob {
1202
  return;
1203
  }
1204
 
1205
-
1206
  if (!$is_container) {
1207
  trigger_error(__('Rackspase Cloud Container not exists:','backwpup').' '.$this->job['rscContainer'],E_USER_ERROR);
1208
  return;
@@ -1254,14 +1276,6 @@ class backwpup_dojob {
1254
 
1255
  private function destination_msazure() {
1256
 
1257
- if (empty($this->job['msazureHost']) or empty($this->job['msazureAccName']) or empty($this->job['msazureKey']) or empty($this->job['msazureContainer']))
1258
- return;
1259
-
1260
- if (!(extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))) {
1261
- trigger_error(__('Can not load curl extension is needed for Microsoft Azure!','backwpup'),E_USER_ERROR);
1262
- return;
1263
- }
1264
-
1265
  if (!class_exists('Microsoft_WindowsAzure_Storage_Blob')) {
1266
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
1267
  require_once 'Microsoft/WindowsAzure/Storage/Blob.php';
@@ -1318,8 +1332,6 @@ class backwpup_dojob {
1318
  }
1319
 
1320
  private function destination_dir() {
1321
- if (empty($this->job['backupdir'])) //Go back if no destination dir
1322
- return;
1323
  $this->lastbackupdownloadurl='admin.php?page=BackWPup&subpage=backups&action=download&file='.$this->backupdir.$this->backupfile;
1324
  //Delete old Backupfiles
1325
  $backupfilelist=array();
@@ -1345,30 +1357,34 @@ class backwpup_dojob {
1345
  }
1346
 
1347
  private function destination_dropbox(){
1348
- if (empty($this->job['dropemail']) or empty($this->job['dropepass']))
1349
- return;
1350
-
1351
- if (!(extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))) {
1352
- trigger_error(__('Can not load curl extension is needed for Dropbox!','backwpup'),E_USER_ERROR);
1353
- return;
1354
- }
1355
 
1356
  if (!class_exists('Dropbox'))
1357
  require_once (dirname(__FILE__).'/libs/dropbox.php');
1358
 
 
 
1359
  try {
1360
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
1361
- // get the tokens
1362
- $response = $dropbox->token($this->job['dropemail'], base64_decode($this->job['dropepass']));
1363
-
1364
- if (!empty($response['token']) and !empty($response['secret'])) {
1365
- $info=$dropbox->accountInfo();
1366
- trigger_error(__('Authed to DropBox API from ','backwpup').$info['display_name'],E_USER_NOTICE);
 
 
 
 
 
 
1367
  } else {
1368
- trigger_error(__('Can not Auth with DropBox API:','backwpup').' '.$response['error'],E_USER_ERROR);
 
 
 
 
1369
  return;
1370
  }
1371
-
1372
  // put the file
1373
  $response = $dropbox->filesPost($this->job['dropedir'], $this->backupdir.$this->backupfile);
1374
  if ($response['result']=="winner!") {
@@ -1402,8 +1418,6 @@ class backwpup_dojob {
1402
  } catch (Exception $e) {
1403
  trigger_error(__('DropBox API:','backwpup').' '.$e->getMessage(),E_USER_ERROR);
1404
  }
1405
-
1406
-
1407
  }
1408
 
1409
  private function job_end($logfile ='') {
@@ -1412,14 +1426,15 @@ class backwpup_dojob {
1412
 
1413
  if (!($filesize=@filesize($this->backupdir.$this->backupfile))) //Set the filezie corectly
1414
  $filesize=0;
1415
-
1416
  //clean up
1417
  @unlink($this->tempdir.DB_NAME.'.sql');
1418
- @unlink($this->tempdir.sanitize_key(get_bloginfo('name')).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
1419
 
1420
  if (empty($this->job['backupdir']) and is_file($this->backupdir.$this->backupfile)) { //delete backup file in temp dir
1421
  unlink($this->backupdir.$this->backupfile);
1422
  }
 
1423
  $jobs=get_option('backwpup_jobs');
1424
  $jobs[$this->jobid]['lastrun']=$jobs[$this->jobid]['starttime'];
1425
  $jobs[$this->jobid]['lastruntime']=current_time('timestamp')-$jobs[$this->jobid]['starttime'];
@@ -1429,7 +1444,7 @@ class backwpup_dojob {
1429
  update_option('backwpup_jobs',$jobs); //Save Settings
1430
  $this->job['lastrun']=$jobs[$this->jobid]['lastrun'];
1431
  $this->job['lastruntime']=$jobs[$this->jobid]['lastruntime'];
1432
-
1433
  //write heder info
1434
  $fd=fopen($logfile,'r+');
1435
  $found=0;
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('S3',$dests) and !empty($this->job['awsAccessKey']) and !empty($this->job['awsSecretKey']) and !empty($this->job['awsBucket'])) {
177
+ if (function_exists('curl_exec'))
178
+ $this->destination_s3();
179
+ else
180
+ trigger_error(__('Curl extension needed for Amazon S3!','backwpup'),E_USER_ERROR);
181
+ }
182
+ if (in_array('RSC',$dests) and !empty($this->job['rscUsername']) and !empty($this->job['rscAPIKey']) and !empty($this->job['rscContainer'])) {
183
+ if (function_exists('curl_exec'))
184
+ $this->destination_rsc();
185
+ else
186
+ trigger_error(__('Curl extension needed for RackSpaceCloud!','backwpup'),E_USER_ERROR);
187
+ }
188
+ 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'])) {
189
+ if (function_exists('curl_exec'))
190
+ $this->destination_msazure();
191
+ else
192
+ trigger_error(__('Curl extension needed for Microsoft Azure!','backwpup'),E_USER_ERROR);
193
+ }
194
+ if (!empty($this->job['backupdir'])) {
195
+ $this->destination_dir();
196
+ }
197
  }
198
 
199
  foreach($this->todo as $key => $value) {
327
 
328
  private function _check_folders($folder) {
329
  if (!is_dir($folder)) { //create dir if not exists
330
+ if (!mkdir($folder,0755,true)) {
331
  trigger_error(sprintf(__('Can not create Folder: %1$s','backwpup'),$folder),E_USER_ERROR);
332
  return false;
333
  }
484
  }
485
 
486
  private function dump_db_table($table,$status,$file) {
487
+ $this->need_free_memory(1048576); //1MB free memory for dump
488
  // create dump
489
  fwrite($file, "\n");
490
  fwrite($file, "--\n");
559
  }
560
  sort($tables);
561
 
 
562
  if (sizeof($tables)>0) {
563
  $result=$wpdb->get_results("SHOW TABLE STATUS FROM `".DB_NAME."`;", ARRAY_A); //get table status
564
  if ($sqlerr=mysql_error($wpdb->dbh))
618
  trigger_error(__('No Tables to Dump','backwpup'),E_USER_WARNING);
619
  }
620
 
 
621
  //add database file to backupfiles
622
  if (is_readable($this->tempdir.DB_NAME.'.sql')) {
623
  trigger_error(__('Add Database Dump to Backup:','backwpup').' '.DB_NAME.'.sql '.backwpup_formatBytes(filesize($this->tempdir.DB_NAME.'.sql')),E_USER_NOTICE);
629
  }
630
 
631
  private function export_wp() {
632
+ $this->need_free_memory(1048576); //1MB free memory
633
+ if (function_exists('curl_exec')) {
634
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
635
  $ch = curl_init();
636
  curl_setopt($ch, CURLOPT_URL, plugins_url('wp_xml_export.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH).'&_nonce='.substr(md5(md5(SECURE_AUTH_KEY)),10,10));
637
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
638
  curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
639
  curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
640
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
641
  $return=curl_exec($ch);
642
  if (!$return) {
643
  trigger_error(__('cURL:','backwpup').' '.curl_error($ch),E_USER_ERROR);
644
  } else {
645
+ $fd=fopen($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml',"w+");
646
  fwrite($fd,$return);
647
  fclose($fd);
648
  }
649
  curl_close($ch);
650
  } elseif (ini_get('allow_url_fopen')==true or ini_get('allow_url_fopen')==1 or strtolower(ini_get('allow_url_fopen'))=="on") {
651
  trigger_error(__('Run Wordpress Export to XML file...','backwpup'),E_USER_NOTICE);
652
+ 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')) {
653
  trigger_error(__('Export to XML done!','backwpup'),E_USER_NOTICE);
654
  } else {
655
  trigger_error(__('Can not Export to XML!','backwpup'),E_USER_ERROR);
657
  } else {
658
  trigger_error(__('Can not Export to XML! no cURL or allow_url_fopen Support!','backwpup'),E_USER_WARNING);
659
  }
660
+ if (is_readable($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml')) {
661
  //add database file to backupfiles
662
+ trigger_error(__('Add XML Export to Backup:','backwpup').' '.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml '.backwpup_formatBytes(filesize($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml')),E_USER_NOTICE);
663
+ $this->allfilesize+=filesize($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
664
+ $this->filelist[]=array(79001=>$this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml',79003=>preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
665
  }
666
  }
667
 
791
  }
792
 
793
  private function zip_files() {
 
794
  if (class_exists('ZipArchive')) { //use php zip lib
795
  trigger_error(__('Create Backup Zip file...','backwpup'),E_USER_NOTICE);
796
  $zip = new ZipArchive;
812
  } else {
813
  trigger_error(__('Can not create Backup ZIP file:','backwpup').' '.$res,E_USER_ERROR);
814
  }
 
815
  } else { //use PclZip
816
  define( 'PCLZIP_TEMPORARY_DIR', $this->tempdir );
817
  if (!class_exists('PclZip'))
853
  trigger_error(__('Create Backup Archive file...','backwpup'),E_USER_NOTICE);
854
  }
855
 
856
+ $this->need_free_memory(1048576); //1MB free memory for tar
857
 
858
  foreach($this->filelist as $key => $files) {
859
  if ($this->cfg['logfilelist'])
867
 
868
  // Get file information
869
  $file_information = stat($files[79001]);
870
+ //split filename larger than 100 chars
871
+ if (strlen($files[79003])<=100) {
872
+ $filename=$files[79003];
873
+ $filenameprefix="";
874
+ } else {
875
+ $filenameofset=strlen($files[79003])-100;
876
+ $dividor=strpos($files[79003],'/',$filenameofset);
877
+ $filename=substr($files[79003],$dividor+1);
878
+ $filenameprefix=substr($files[79003],0,$dividor);
879
+ if (strlen($filename)>100)
880
+ trigger_error(__('File Name to Long to save corectly in TAR Backup Archive:','backwpup').' '.$files[79003],E_USER_WARNING);
881
+ if (strlen($filenameprefix)>155)
882
+ trigger_error(__('File Path to Long to save corectly in TAR Backup Archive:','backwpup').' '.$files[79003],E_USER_WARNING);
883
+ }
884
+ //Set file user/group name if linux
885
+ $fileowner="Unknown";
886
+ $filegroup="Unknown";
887
+ if (function_exists('posix_getpwuid')) {
888
+ $info=posix_getpwuid($file_information['uid']);
889
+ $fileowner=$info['name'];
890
+ $info=posix_getgrgid($file_information['gid']);
891
+ $filegroup=$info['name'];
892
+ }
893
+
894
  // Generate the TAR header for this file
895
  $header = pack("a100a8a8a8a12a12a8a1a100a6a2a32a32a8a8a155a12",
896
+ $filename, //name of file 100
897
  sprintf("%07o", $file_information['mode']), //file mode 8
898
  sprintf("%07o", $file_information['uid']), //owner user ID 8
899
  sprintf("%07o", $file_information['gid']), //owner group ID 8
902
  " ", //checksum for header 8
903
  0, //type of file 0 or null = File, 5=Dir
904
  "", //name of linked file 100
905
+ "ustar", //USTAR indicator 6
906
+ "00", //USTAR version 2
907
+ $fileowner, //owner user name 32
908
+ $filegroup, //owner group name 32
909
  "", //device major number 8
910
  "", //device minor number 8
911
+ $filenameprefix, //prefix for file name 155
912
  ""); //fill block 512K
913
 
914
  // Computes the unsigned Checksum of a file's header
961
 
962
 
963
  private function destination_ftp() {
 
 
 
 
964
  $ftpport=21;
965
  $ftphost=$this->job['ftphost'];
966
  if (false !== strpos($this->job['ftphost'],':')) //look for port
1078
  }
1079
 
1080
  private function destination_mail() {
 
 
 
1081
  trigger_error(__('Prepare Sending backup file with mail...','backwpup'),E_USER_NOTICE);
 
1082
  //Create PHP Mailer
1083
  require_once(ABSPATH.WPINC.'/class-phpmailer.php');
1084
  $phpmailer = new PHPMailer();
1140
 
1141
  private function destination_s3() {
1142
 
 
 
 
 
1143
  if (!class_exists('CFRuntime'))
1144
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
1145
 
1198
 
1199
  private function destination_rsc() {
1200
 
 
 
 
 
 
 
 
 
1201
  if (!class_exists('CF_Authentication'))
1202
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
1203
 
 
1204
  $auth = new CF_Authentication($this->job['rscUsername'], $this->job['rscAPIKey']);
1205
  $auth->ssl_use_cabundle();
1206
  try {
1225
  return;
1226
  }
1227
 
 
1228
  if (!$is_container) {
1229
  trigger_error(__('Rackspase Cloud Container not exists:','backwpup').' '.$this->job['rscContainer'],E_USER_ERROR);
1230
  return;
1276
 
1277
  private function destination_msazure() {
1278
 
 
 
 
 
 
 
 
 
1279
  if (!class_exists('Microsoft_WindowsAzure_Storage_Blob')) {
1280
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
1281
  require_once 'Microsoft/WindowsAzure/Storage/Blob.php';
1332
  }
1333
 
1334
  private function destination_dir() {
 
 
1335
  $this->lastbackupdownloadurl='admin.php?page=BackWPup&subpage=backups&action=download&file='.$this->backupdir.$this->backupfile;
1336
  //Delete old Backupfiles
1337
  $backupfilelist=array();
1357
  }
1358
 
1359
  private function destination_dropbox(){
 
 
 
 
 
 
 
1360
 
1361
  if (!class_exists('Dropbox'))
1362
  require_once (dirname(__FILE__).'/libs/dropbox.php');
1363
 
1364
+ $this->need_free_memory(filesize($this->backupdir.$this->backupfile)*1.3);
1365
+
1366
  try {
1367
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
1368
+ // set the tokens
1369
+ $dropbox->setOAuthToken($this->job['dropetoken']);
1370
+ $dropbox->setOAuthTokenSecret($this->job['dropesecret']);
1371
+ $info=$dropbox->accountInfo();
1372
+ if (!empty($info['uid'])) {
1373
+ trigger_error(__('Authed to DropBox from ','backwpup').$info['display_name'],E_USER_NOTICE);
1374
+ }
1375
+ //Check Quota
1376
+ $dropboxfreespase=$info['quota_info']['quota']-$info['quota_info']['shared']-$info['quota_info']['normal'];
1377
+ if (filesize($this->backupdir.$this->backupfile)>$dropboxfreespase) {
1378
+ trigger_error(__('No free space left on DropBox!!!','backwpup'),E_USER_ERROR);
1379
+ return;
1380
  } else {
1381
+ trigger_error(__('Free Space on DropBox: ','backwpup').backwpup_formatBytes($dropboxfreespase),E_USER_NOTICE);
1382
+ }
1383
+ //Check Backup File Size max 300MB allowed
1384
+ if (filesize($this->backupdir.$this->backupfile)>314572800) {
1385
+ trigger_error(__('DropBox API only allow upload files lower than 300MB!!!','backwpup'),E_USER_ERROR);
1386
  return;
1387
  }
 
1388
  // put the file
1389
  $response = $dropbox->filesPost($this->job['dropedir'], $this->backupdir.$this->backupfile);
1390
  if ($response['result']=="winner!") {
1418
  } catch (Exception $e) {
1419
  trigger_error(__('DropBox API:','backwpup').' '.$e->getMessage(),E_USER_ERROR);
1420
  }
 
 
1421
  }
1422
 
1423
  private function job_end($logfile ='') {
1426
 
1427
  if (!($filesize=@filesize($this->backupdir.$this->backupfile))) //Set the filezie corectly
1428
  $filesize=0;
1429
+
1430
  //clean up
1431
  @unlink($this->tempdir.DB_NAME.'.sql');
1432
+ @unlink($this->tempdir.preg_replace( '/[^a-z0-9_\-]/', '', strtolower(get_bloginfo('name')) ).'.wordpress.' . date( 'Y-m-d' ) . '.xml');
1433
 
1434
  if (empty($this->job['backupdir']) and is_file($this->backupdir.$this->backupfile)) { //delete backup file in temp dir
1435
  unlink($this->backupdir.$this->backupfile);
1436
  }
1437
+
1438
  $jobs=get_option('backwpup_jobs');
1439
  $jobs[$this->jobid]['lastrun']=$jobs[$this->jobid]['starttime'];
1440
  $jobs[$this->jobid]['lastruntime']=current_time('timestamp')-$jobs[$this->jobid]['starttime'];
1444
  update_option('backwpup_jobs',$jobs); //Save Settings
1445
  $this->job['lastrun']=$jobs[$this->jobid]['lastrun'];
1446
  $this->job['lastruntime']=$jobs[$this->jobid]['lastruntime'];
1447
+
1448
  //write heder info
1449
  $fd=fopen($logfile,'r+');
1450
  $found=0;
app/compatibility/class-wp-list-table.php CHANGED
@@ -892,7 +892,6 @@ class WP_List_Table {
892
  }
893
  }
894
 
895
-
896
  /**
897
  * Get the current screen object
898
  *
@@ -984,4 +983,5 @@ function get_submit_button( $text = NULL, $type = 'primary', $name = 'submit', $
984
 
985
  return $button;
986
  }
 
987
  ?>
892
  }
893
  }
894
 
 
895
  /**
896
  * Get the current screen object
897
  *
983
 
984
  return $button;
985
  }
986
+
987
  ?>
app/css/options.css CHANGED
@@ -9,4 +9,16 @@
9
  }
10
  .column-size {
11
  width:75px;
 
 
 
 
 
 
 
 
 
 
 
 
12
  }
9
  }
10
  .column-size {
11
  width:75px;
12
+ }
13
+ input.large-text,
14
+ textarea.large-text {
15
+ width: 99%;
16
+ }
17
+ input.regular-text,
18
+ #adduser .form-field input {
19
+ width: 25em;
20
+ }
21
+
22
+ input.small-text {
23
+ width: 50px;
24
  }
app/dropbox-auth.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?PHP
2
+ 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.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($_GET['oauth_token']);
15
+ //Save Tokens
16
+ $jobs=get_option('backwpup_jobs');
17
+ $jobs[$reqtoken['jobid']]['dropetoken']=$oAuthStuff['oauth_token'];
18
+ $jobs[$reqtoken['jobid']]['dropesecret']=$oAuthStuff['oauth_token_secret'];
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
+ ?>
app/js/options.js CHANGED
@@ -37,7 +37,7 @@ jQuery(document).ready( function($) {
37
  $('#filebackup').hide();
38
  }
39
  });
40
-
41
  $('#mailmethod').change(function() {
42
  if ( 'SMTP' == $('#mailmethod').val()) {
43
  $('#mailsmtp').show();
@@ -126,4 +126,5 @@ jQuery(document).ready( function($) {
126
  $(this).unbind(e);
127
  });
128
 
129
- });
 
37
  $('#filebackup').hide();
38
  }
39
  });
40
+
41
  $('#mailmethod').change(function() {
42
  if ( 'SMTP' == $('#mailmethod').val()) {
43
  $('#mailsmtp').show();
126
  $(this).unbind(e);
127
  });
128
 
129
+ });
130
+
app/libs/dropbox.php CHANGED
@@ -8,11 +8,17 @@
8
  * The class is documented in the file itself. If you find any bugs help me out and report them. Reporting can be done by sending an email to php-dropbox-bugs[at]verkoyen[dot]eu.
9
  * If you report a bug, make sure you give me enough information (include your code).
10
  *
 
 
 
 
 
 
11
  * Changelog since 1.0.0
12
  * - fixed some issues with generation off the basestring
13
  *
14
  * License
15
- * Copyright (c) 2010, Tijs Verkoyen. All rights reserved.
16
  *
17
  * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
18
  *
@@ -23,9 +29,9 @@
23
  * This software is provided by the author "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
24
  *
25
  * @author Tijs Verkoyen <php-dropbox@verkoyen.eu>
26
- * @version 1.0.1
27
  *
28
- * @copyright Copyright (c) 2010, Tijs Verkoyen. All rights reserved.
29
  * @license BSD License
30
  */
31
  class Dropbox
@@ -41,7 +47,7 @@ class Dropbox
41
  const API_PORT = 443;
42
 
43
  // current version
44
- const VERSION = '1.0.1';
45
 
46
 
47
  /**
@@ -224,7 +230,7 @@ class Dropbox
224
  $base .= (substr_count($url, '?')) ? '%26' : '&';
225
  $base .= implode('%26', $chunks);
226
  $base = str_replace(array('%3F', '%20'), array('&', '%2520'), $base);
227
-
228
  // return
229
  return $base;
230
  }
@@ -269,7 +275,7 @@ class Dropbox
269
  * @param string $method
270
  * @param array[optional] $parameters
271
  */
272
- private function doOAuthCall($url, array $parameters = null)
273
  {
274
  // redefine
275
  $url = (string) $url;
@@ -290,6 +296,22 @@ class Dropbox
290
  // calculate header
291
  $header = $this->calculateHeader($parameters, self::API_URL .'/'. $url);
292
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  // set options
294
  $options[CURLOPT_URL] = self::API_URL .'/'. $url;
295
  $options[CURLOPT_PORT] = self::API_PORT;
@@ -300,8 +322,6 @@ class Dropbox
300
  $options[CURLOPT_SSL_VERIFYPEER] = false;
301
  $options[CURLOPT_SSL_VERIFYHOST] = false;
302
  $options[CURLOPT_HTTPHEADER] = array('Expect:');
303
- $options[CURLOPT_POST] = true;
304
- $options[CURLOPT_POSTFIELDS] = $this->buildQuery($parameters);
305
 
306
  // init
307
  $this->curl = curl_init();
@@ -321,7 +341,10 @@ class Dropbox
321
  if($errorNumber != '') throw new DropboxException($errorMessage, $errorNumber);
322
 
323
  // return
324
- return json_decode($response, true);
 
 
 
325
  }
326
 
327
 
@@ -408,21 +431,25 @@ class Dropbox
408
  $headers[] = 'Content-Length: '. strlen($content);
409
 
410
  // set content
411
- $options[CURLOPT_POSTFIELDS] = $content;
 
412
  }
413
 
414
  // no file
415
  else $options[CURLOPT_POSTFIELDS] = $this->buildQuery($parameters);
416
 
417
  // enable post
418
- $options[CURLOPT_POST] = 1;
419
  }
420
 
421
  else
422
  {
 
 
 
 
423
  // add the parameters into the querystring
424
  if(!empty($parameters)) $url .= '?'. $this->buildQuery($parameters);
425
- $options[CURLOPT_POST] = 0;
426
  }
427
 
428
  // add sign into the parameters
@@ -712,6 +739,101 @@ class Dropbox
712
  }
713
 
714
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
715
  // token resources
716
  /**
717
  * The token call provides a consumer/secret key pair you can use to consistently access the user's account.
8
  * The class is documented in the file itself. If you find any bugs help me out and report them. Reporting can be done by sending an email to php-dropbox-bugs[at]verkoyen[dot]eu.
9
  * If you report a bug, make sure you give me enough information (include your code).
10
  *
11
+ * Changelog since 1.0.2
12
+ * - Added methods to enable oauth-usage.
13
+ *
14
+ * Changelog since 1.0.1
15
+ * - Bugfix: when doing multiple calles where GET and POST is mixed, the postfields should be reset (thx to Daniel H�sken)
16
+ *
17
  * Changelog since 1.0.0
18
  * - fixed some issues with generation off the basestring
19
  *
20
  * License
21
+ * Copyright (c), Tijs Verkoyen. All rights reserved.
22
  *
23
  * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
24
  *
29
  * This software is provided by the author "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
30
  *
31
  * @author Tijs Verkoyen <php-dropbox@verkoyen.eu>
32
+ * @version 1.0.3
33
  *
34
+ * @copyright Copyright (c), Tijs Verkoyen. All rights reserved.
35
  * @license BSD License
36
  */
37
  class Dropbox
47
  const API_PORT = 443;
48
 
49
  // current version
50
+ const VERSION = '1.0.3';
51
 
52
 
53
  /**
230
  $base .= (substr_count($url, '?')) ? '%26' : '&';
231
  $base .= implode('%26', $chunks);
232
  $base = str_replace(array('%3F', '%20'), array('&', '%2520'), $base);
233
+
234
  // return
235
  return $base;
236
  }
275
  * @param string $method
276
  * @param array[optional] $parameters
277
  */
278
+ private function doOAuthCall($url, array $parameters = null, $method = 'POST', $expectJSON = true)
279
  {
280
  // redefine
281
  $url = (string) $url;
296
  // calculate header
297
  $header = $this->calculateHeader($parameters, self::API_URL .'/'. $url);
298
 
299
+ if($method == 'POST')
300
+ {
301
+ $options[CURLOPT_POST] = true;
302
+ $options[CURLOPT_POSTFIELDS] = $this->buildQuery($parameters);
303
+ }
304
+
305
+ else
306
+ {
307
+ // reset post
308
+ $options[CURLOPT_POST] = 0;
309
+ unset($options[CURLOPT_POSTFIELDS]);
310
+
311
+ // add the parameters into the querystring
312
+ if(!empty($parameters)) $url .= '?'. $this->buildQuery($parameters);
313
+ }
314
+
315
  // set options
316
  $options[CURLOPT_URL] = self::API_URL .'/'. $url;
317
  $options[CURLOPT_PORT] = self::API_PORT;
322
  $options[CURLOPT_SSL_VERIFYPEER] = false;
323
  $options[CURLOPT_SSL_VERIFYHOST] = false;
324
  $options[CURLOPT_HTTPHEADER] = array('Expect:');
 
 
325
 
326
  // init
327
  $this->curl = curl_init();
341
  if($errorNumber != '') throw new DropboxException($errorMessage, $errorNumber);
342
 
343
  // return
344
+ if($expectJSON) return json_decode($response, true);
345
+
346
+ // fallback
347
+ return $response;
348
  }
349
 
350
 
431
  $headers[] = 'Content-Length: '. strlen($content);
432
 
433
  // set content
434
+ $options[CURLOPT_POSTFIELDS] = $content;
435
+
436
  }
437
 
438
  // no file
439
  else $options[CURLOPT_POSTFIELDS] = $this->buildQuery($parameters);
440
 
441
  // enable post
442
+ $options[CURLOPT_POST] = true;
443
  }
444
 
445
  else
446
  {
447
+ // reset post
448
+ $options[CURLOPT_POST] = false;
449
+ unset($options[CURLOPT_POSTFIELDS]);
450
+
451
  // add the parameters into the querystring
452
  if(!empty($parameters)) $url .= '?'. $this->buildQuery($parameters);
 
453
  }
454
 
455
  // add sign into the parameters
739
  }
740
 
741
 
742
+ // oauth resources
743
+ /**
744
+ * Call for obtaining an OAuth request token.
745
+ * Returns a request token and the corresponding request token secret. This token and secret cannot be used to sign requests for the /metadata and /file content API calls.
746
+ * Their only purpose is for signing a request to oauth/access_token once the user has gone through the application authorization steps provided by oauth/authorize.
747
+ *
748
+ * @return array
749
+ */
750
+ public function oAuthRequestToken()
751
+ {
752
+ // make the call
753
+ $response = $this->doOAuthCall('0/oauth/request_token', null, 'POST', false);
754
+
755
+ // process response
756
+ $response = (array) explode('&', $response);
757
+ $return = array();
758
+
759
+ // loop chunks
760
+ foreach($response as $chunk)
761
+ {
762
+ // split again
763
+ $chunks = explode('=', $chunk, 2);
764
+
765
+ // store return
766
+ if(count($chunks) == 2) $return[$chunks[0]] = $chunks[1];
767
+ }
768
+
769
+ // return
770
+ return $return;
771
+ }
772
+
773
+
774
+ /**
775
+ * Redirect the user to the oauth/authorize location so that Dropbox can authenticate the user and ask whether or not the user wants to authorize the application to access
776
+ * file metadata and content on its behalf. oauth/authorize is not an API call per se, because it does not have a return value, but rather directs the user to a page on
777
+ * api.dropbox.com where they are provided means to log in to Dropbox and grant authority to the application requesting it.
778
+ * The page served by oauth/authorize should be presented to the user through their web browser.
779
+ * Please note, without directing the user to a Dropbox-provided page via oauth/authorize, it is impossible for your application to use the request token it received
780
+ * via oauth/request_token to obtain an access token from oauth/access_token.
781
+ *
782
+ * @return void
783
+ * @param string $oauthToken The request token of the application requesting authority from a user.
784
+ * @param string[optional] $oauthCallback After the user authorizes an application, the user is redirected to the application-served URL provided by this parameter.
785
+ */
786
+ public function oAuthAuthorize($oauthToken, $oauthCallback = null)
787
+ {
788
+ // build parameters
789
+ $parameters = array();
790
+ $parameters['oauth_token'] = (string) $oauthToken;
791
+ if($oauthCallback !== null) $parameters['oauth_callback'] = (string) $oauthCallback;
792
+
793
+ // build url
794
+ $url = self::API_URL .'/0/oauth/authorize?'. http_build_query($parameters);
795
+
796
+ // redirect
797
+ header('Location: '. $url);
798
+ exit;
799
+ }
800
+
801
+
802
+ /**
803
+ * This call returns a access token and the corresponding access token secret.
804
+ * Upon return, the authorization process is now complete and the access token and corresponding secret are used to sign requests for the metadata and file content API calls.
805
+ *
806
+ * @return array
807
+ * @param string $oauthToken The token returned after authorizing
808
+ */
809
+ public function oAuthAccessToken($oauthToken)
810
+ {
811
+ // build parameters
812
+ $parameters = array();
813
+ $parameters['oauth_token'] = (string) $oauthToken;
814
+
815
+ // make the call
816
+ $response = $this->doOAuthCall('0/oauth/access_token', $parameters, 'POST', false);
817
+
818
+ // process response
819
+ $response = (array) explode('&', $response);
820
+ $return = array();
821
+
822
+ // loop chunks
823
+ foreach($response as $chunk)
824
+ {
825
+ // split again
826
+ $chunks = explode('=', $chunk, 2);
827
+
828
+ // store return
829
+ if(count($chunks) == 2) $return[$chunks[0]] = $chunks[1];
830
+ }
831
+
832
+ // return
833
+ return $return;
834
+ }
835
+
836
+
837
  // token resources
838
  /**
839
  * The token call provides a consumer/secret key pair you can use to consistently access the user's account.
app/options-edit-job.php CHANGED
@@ -109,7 +109,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
109
  </div>
110
  <br class="clear" />
111
  <div style="width:130px; float: left;">
112
- <b><?PHP _e('Months:','backwpup'); ?></b><br />
113
  <?PHP
114
  if (strstr($cronstr['mon'],'*/'))
115
  $mon=explode('/',$cronstr['mon']);
@@ -133,7 +133,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
133
  </select>
134
  </div>
135
  <div style="width:130px; float: right;">
136
- <b><?PHP _e('Weekday:','backwpup'); ?></b><br />
137
  <select name="cronwday[]" id="cronwday" style="height:65px;" multiple="multiple">
138
  <?PHP
139
  if (strstr($cronstr['wday'],'*/'))
@@ -190,7 +190,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
190
  <div class="inside">
191
  <?PHP _e('E-Mail-Adress:','backwpup'); ?>
192
  <input name="mailaddresslog" id="mailaddresslog" type="text" value="<?PHP echo $jobvalue['mailaddresslog'];?>" class="large-text" /><br />
193
- <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['mailerroronly'],true); ?> name="mailerroronly" /> <?PHP _e('Send only E-Mail on errors.','backwpup'); ?>
194
  </div>
195
  </div>
196
 
@@ -211,7 +211,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
211
  <h3 class="hndle"><span><?PHP _e('Database Jobs','backwpup'); ?></span></h3>
212
  <div class="inside">
213
 
214
- <b><?PHP _e('Database Tabels to Exclude:','backwpup'); ?></b>
215
  <div id="dbexclude-pop" style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:50%; margin:5px 0px 5px 40px; overflow:auto; padding:0.5em 0.5em;">
216
  <?php
217
  $tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
@@ -222,7 +222,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
222
  }
223
  ?>
224
  </div><br />
225
- <span id="dbshortinsert" <?PHP if (!in_array("DB",$todo)) echo 'style="display:none;"';?>><input class="checkbox" type="checkbox"<?php checked($jobvalue['dbshortinsert'],true,true);?> name="dbshortinsert" value="1"/> <?php _e('Use short INSERTs instat of full (with keys)','backwpup');?><br /></span>
226
  <input class="checkbox" type="checkbox"<?php checked($jobvalue['maintenance'],true,true);?> name="maintenance" value="1"/> <?php _e('Set Blog Maintenance Mode on Database Operations','backwpup');?><br />
227
  </div>
228
  </div>
@@ -329,8 +329,9 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
329
  <div class="inside">
330
  <b><?PHP _e('Full Path to Folder for Backup Files:','backwpup'); ?></b><br />
331
  <input name="backupdir" id="backupdir" type="text" value="<?PHP echo $jobvalue['backupdir'];?>" class="large-text" /><br />
 
332
  <?PHP _e('Max. Backup Files in Folder:','backwpup'); ?> <input name="maxbackups" id="maxbackups" type="text" size="3" value="<?PHP echo $jobvalue['maxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span>
333
- </div>
334
  </div>
335
 
336
  <?PHP if (in_array('FTP',$dests)) { ?>
@@ -346,96 +347,86 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
346
  <b><?PHP _e('Directory on Server:','backwpup'); ?></b><br />
347
  <input name="ftpdir" type="text" value="<?PHP echo $jobvalue['ftpdir'];?>" class="large-text" /><br />
348
  <?PHP if (!is_numeric($jobvalue['ftpmaxbackups'])) $jobvalue['ftpmaxbackups']=0; ?>
349
- <?PHP _e('Max. Backup Files in FTP Folder:','backwpup'); ?> <input name="ftpmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['ftpmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
350
  <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['ftpssl'],true); ?> name="ftpssl" /> <?PHP _e('Use SSL-FTP Connection.','backwpup'); ?><br />
351
  <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['ftppasv'],true); ?> name="ftppasv" /> <?PHP _e('Use FTP Passiv mode.','backwpup'); ?><br />
352
  </div>
353
  </div>
354
  <?PHP } ?>
355
 
356
- <?PHP if (in_array('S3',$dests)) { ?>
357
  <div id="toamazon" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
358
  <h3 class="hndle"><span><?PHP _e('Backup to Amazon S3','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Faws%2Fregistration%2Fregistration-form.html&site-redirect=de&tag=hueskennet-21&linkCode=ur2&camp=1638&creative=6742" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a><img src="http://www.assoc-amazon.de/e/ir?t=hueskennet-21&l=ur2&o=3" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h3>
359
  <div class="inside">
360
- <?PHP if (!(extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))) {
361
- echo "<b>".__('curl Support required','backwpup')."</b>";
362
- } else { ?>
363
- <b><?PHP _e('Access Key ID:','backwpup'); ?></b>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key" target="_blank"><?PHP _e('Find it','backwpup'); ?></a><br />
364
- <input id="awsAccessKey" name="awsAccessKey" type="text" value="<?PHP echo $jobvalue['awsAccessKey'];?>" class="large-text" /><br />
365
- <b><?PHP _e('Secret Access Key:','backwpup'); ?></b><br />
366
- <input id="awsSecretKey" name="awsSecretKey" type="password" value="<?PHP echo $jobvalue['awsSecretKey'];?>" class="large-text" /><br />
367
- <b><?PHP _e('Bucket:','backwpup'); ?></b><br />
368
- <input id="awsBucketselected" name="awsBucketselected" type="hidden" value="<?PHP echo $jobvalue['awsBucket'];?>" />
369
- <?PHP if (!empty($jobvalue['awsAccessKey']) and !empty($jobvalue['awsSecretKey'])) backwpup_get_aws_buckets(array('awsAccessKey'=>$jobvalue['awsAccessKey'],'awsSecretKey'=>$jobvalue['awsSecretKey'],'awsselected'=>$jobvalue['awsBucket'])); ?>
370
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?PHP _e('Create Bucket:','backwpup'); ?><input name="newawsBucket" type="text" value="" class="text" /> <select name="awsRegion" title="<?php _e('Bucket Region', 'backwpup'); ?>"><option value=""><?php _e('US-East (Northern Virginia)', 'backwpup'); ?></option><option value="us-west-1"><?php _e('US-West (Northern California)', 'backwpup'); ?></option><option value="EU"><?php _e('EU (Ireland)', 'backwpup'); ?></option><option value="ap-southeast-1"><?php _e('Asia Pacific (Singapore)', 'backwpup'); ?></option><option value="ap-northeast-1"><?php _e('Asia Pacific (Japan)', 'backwpup'); ?></option></select><br />
371
- <b><?PHP _e('Directory in Bucket:','backwpup'); ?></b><br />
372
- <input name="awsdir" type="text" value="<?PHP echo $jobvalue['awsdir'];?>" class="large-text" /><br />
373
- <?PHP _e('Max. Backup Files in Bucket Folder:','backwpup'); ?><input name="awsmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['awsmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
374
- <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['awsrrs'],true); ?> name="awsrrs" /> <?PHP _e('Save Backups with reduced redundancy!','backwpup'); ?><br />
375
- <?PHP } ?>
376
  </div>
377
  </div>
378
  <?PHP } ?>
379
 
380
- <?PHP if (in_array('MSAZURE',$dests)) { ?>
381
  <div id="tomsazure" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
382
  <h3 class="hndle"><span><?PHP _e('Backup to Micosoft Azure (Blob)','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.microsoft.com/windowsazure/offers/" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a></h3>
383
  <div class="inside">
384
- <?PHP if (!(extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))) {
385
- echo "<b>".__('curl Support required','backwpup')."</b>";
386
- } else { ?>
387
- <b><?PHP _e('Host:','backwpup'); ?></b><br />
388
- <input id="msazureHost" name="msazureHost" type="text" value="<?PHP echo $jobvalue['msazureHost'];?>" class="large-text" /><span class="description"><?PHP _e('Normely: blob.core.windows.net','backwpup');?></span><br />
389
- <b><?PHP _e('Account Name:','backwpup'); ?></b><br />
390
- <input id="msazureAccName" name="msazureAccName" type="text" value="<?PHP echo $jobvalue['msazureAccName'];?>" class="large-text" /><br />
391
- <b><?PHP _e('Access Key:','backwpup'); ?></b>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://windows.azure.com/" target="_blank"><?PHP _e('Find it','backwpup'); ?></a><br />
392
- <input id="msazureKey" name="msazureKey" type="password" value="<?PHP echo $jobvalue['msazureKey'];?>" class="large-text" /><br />
393
- <b><?PHP _e('Container:','backwpup'); ?></b><br />
394
- <input id="msazureContainerselected" name="msazureContainerselected" type="hidden" value="<?PHP echo $jobvalue['msazureContainer'];?>" />
395
- <?PHP if (!empty($jobvalue['msazureAccName']) and !empty($jobvalue['msazureKey'])) backwpup_get_msazure_container(array('msazureHost'=>$jobvalue['msazureHost'],'msazureAccName'=>$jobvalue['msazureAccName'],'msazureKey'=>$jobvalue['msazureKey'],'msazureselected'=>$jobvalue['msazureContainer'])); ?>
396
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?PHP _e('Create Container:','backwpup'); ?><input name="newmsazureContainer" type="text" value="" class="text" /> <br />
397
- <b><?PHP _e('Directory in Container:','backwpup'); ?></b><br />
398
- <input name="msazuredir" type="text" value="<?PHP echo $jobvalue['msazuredir'];?>" class="large-text" /><br />
399
- <?PHP _e('Max. Backup Files in Container Folder:','backwpup'); ?><input name="msazuremaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['msazuremaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
400
- <?PHP } ?>
401
  </div>
402
  </div>
403
  <?PHP } ?>
404
 
405
- <?PHP if (in_array('RSC',$dests)) { ?>
406
  <div id="torsc" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
407
  <h3 class="hndle"><span><?PHP _e('Backup to Rackspace Cloud','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.rackspacecloud.com/2073.html" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a></h3>
408
  <div class="inside">
409
- <?PHP if (!(extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll'))) {
410
- echo "<b>".__('curl Support required','backwpup')."</b>";
411
- } else { ?>
412
- <b><?PHP _e('Username:','backwpup'); ?></b><br />
413
- <input id="rscUsername" name="rscUsername" type="text" value="<?PHP echo $jobvalue['rscUsername'];?>" class="large-text" /><br />
414
- <b><?PHP _e('API Key:','backwpup'); ?></b>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://manage.rackspacecloud.com/APIAccess.do" target="_blank"><?PHP _e('Find it','backwpup'); ?></a><br />
415
- <input id="rscAPIKey" name="rscAPIKey" type="text" value="<?PHP echo $jobvalue['rscAPIKey'];?>" class="large-text" /><br />
416
- <b><?PHP _e('Container:','backwpup'); ?></b><br />
417
- <input id="rscContainerselected" name="rscContainerselected" type="hidden" value="<?PHP echo $jobvalue['rscContainer'];?>" />
418
- <?PHP if (!empty($jobvalue['rscUsername']) and !empty($jobvalue['rscAPIKey'])) backwpup_get_rsc_container(array('rscUsername'=>$jobvalue['rscUsername'],'rscAPIKey'=>$jobvalue['rscAPIKey'],'rscselected'=>$jobvalue['rscContainer'])); ?>
419
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?PHP _e('Create Container:','backwpup'); ?><input name="newrscContainer" type="text" value="" class="text" /> <br />
420
- <b><?PHP _e('Directory in Container:','backwpup'); ?></b><br />
421
- <input name="rscdir" type="text" value="<?PHP echo $jobvalue['rscdir'];?>" class="large-text" /><br />
422
- <?PHP _e('Max. Backup Files in Container Folder:','backwpup'); ?><input name="rscmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['rscmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
423
- <?PHP } ?>
424
  </div>
425
  </div>
426
  <?PHP } ?>
427
 
428
- <?PHP if (in_array('DROPBOX',$dests)) { ?>
429
  <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;"';?>>
430
  <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>
431
  <div class="inside">
432
- <b><?PHP _e('Email:','backwpup'); ?></b><br />
433
- <input name="dropemail" type="text" value="<?PHP echo $jobvalue['dropemail'];?>" class="large-text" /><br />
434
- <b><?PHP _e('Password:','backwpup'); ?></b><br />
435
- <input name="dropepass" type="password" value="<?PHP echo base64_decode($jobvalue['dropepass']);?>" class="password large-text" /><br />
 
 
436
  <b><?PHP _e('Directory:','backwpup'); ?></b><br />
437
  <input name="dropedir" type="text" value="<?PHP echo $jobvalue['dropedir'];?>" class="user large-text" /><br />
438
- <?PHP _e('Max. Backup Files in Dopbox Folder:','backwpup'); ?><input name="dropemaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['dropemaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
439
  </div>
440
  </div>
441
  <?PHP } ?>
@@ -443,7 +434,7 @@ $dests=explode(',',strtoupper(BACKWPUP_DESTS));
443
  <div id="tomail" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
444
  <h3 class="hndle"><span><?PHP _e('Backup to E-Mail','backwpup'); ?></span></h3>
445
  <div class="inside">
446
- <b><?PHP _e('E-Mail-Adress:','backwpup'); ?></b><br />
447
  <input name="mailaddress" id="mailaddress" type="text" value="<?PHP echo $jobvalue['mailaddress'];?>" class="large-text" /><br />
448
  <?PHP if (!is_numeric($jobvalue['mailefilesize'])) $jobvalue['mailefilesize']=0; ?>
449
  <?PHP echo __('Max. File Size for sending Backups with mail:','backwpup').'<input name="mailefilesize" type="text" value="'.$jobvalue['mailefilesize'].'" class="small-text" />MB<br />';?>
109
  </div>
110
  <br class="clear" />
111
  <div style="width:130px; float: left;">
112
+ <b><?PHP _e('Day of Month:','backwpup'); ?></b><br />
113
  <?PHP
114
  if (strstr($cronstr['mon'],'*/'))
115
  $mon=explode('/',$cronstr['mon']);
133
  </select>
134
  </div>
135
  <div style="width:130px; float: right;">
136
+ <b><?PHP _e('Day of Week:','backwpup'); ?></b><br />
137
  <select name="cronwday[]" id="cronwday" style="height:65px;" multiple="multiple">
138
  <?PHP
139
  if (strstr($cronstr['wday'],'*/'))
190
  <div class="inside">
191
  <?PHP _e('E-Mail-Adress:','backwpup'); ?>
192
  <input name="mailaddresslog" id="mailaddresslog" type="text" value="<?PHP echo $jobvalue['mailaddresslog'];?>" class="large-text" /><br />
193
+ <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['mailerroronly'],true); ?> name="mailerroronly" /> <?PHP _e('Only send an e-mail if there are errors.','backwpup'); ?>
194
  </div>
195
  </div>
196
 
211
  <h3 class="hndle"><span><?PHP _e('Database Jobs','backwpup'); ?></span></h3>
212
  <div class="inside">
213
 
214
+ <b><?PHP _e('Database tables to <span style="color:red;">ex</span>clude:','backwpup'); ?></b>
215
  <div id="dbexclude-pop" style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:50%; margin:5px 0px 5px 40px; overflow:auto; padding:0.5em 0.5em;">
216
  <?php
217
  $tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
222
  }
223
  ?>
224
  </div><br />
225
+ <span id="dbshortinsert" <?PHP if (!in_array("DB",$todo)) echo 'style="display:none;"';?>><input class="checkbox" type="checkbox"<?php checked($jobvalue['dbshortinsert'],true,true);?> name="dbshortinsert" value="1"/> <?php _e('Use short INSERTs instead of full (with keys)','backwpup');?><br /></span>
226
  <input class="checkbox" type="checkbox"<?php checked($jobvalue['maintenance'],true,true);?> name="maintenance" value="1"/> <?php _e('Set Blog Maintenance Mode on Database Operations','backwpup');?><br />
227
  </div>
228
  </div>
329
  <div class="inside">
330
  <b><?PHP _e('Full Path to Folder for Backup Files:','backwpup'); ?></b><br />
331
  <input name="backupdir" id="backupdir" type="text" value="<?PHP echo $jobvalue['backupdir'];?>" class="large-text" /><br />
332
+ <span class="description"><?PHP _e('(Leave it empty to store Backups not local!)','backwpup');?></span><br />
333
  <?PHP _e('Max. Backup Files in Folder:','backwpup'); ?> <input name="maxbackups" id="maxbackups" type="text" size="3" value="<?PHP echo $jobvalue['maxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span>
334
+ </div>
335
  </div>
336
 
337
  <?PHP if (in_array('FTP',$dests)) { ?>
347
  <b><?PHP _e('Directory on Server:','backwpup'); ?></b><br />
348
  <input name="ftpdir" type="text" value="<?PHP echo $jobvalue['ftpdir'];?>" class="large-text" /><br />
349
  <?PHP if (!is_numeric($jobvalue['ftpmaxbackups'])) $jobvalue['ftpmaxbackups']=0; ?>
350
+ <?PHP _e('Max. Backup Files in FTP Folder:','backwpup'); ?> <input name="ftpmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['ftpmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
351
  <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['ftpssl'],true); ?> name="ftpssl" /> <?PHP _e('Use SSL-FTP Connection.','backwpup'); ?><br />
352
  <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['ftppasv'],true); ?> name="ftppasv" /> <?PHP _e('Use FTP Passiv mode.','backwpup'); ?><br />
353
  </div>
354
  </div>
355
  <?PHP } ?>
356
 
357
+ <?PHP if (in_array('S3',$dests) and function_exists('curl_exec')) { ?>
358
  <div id="toamazon" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
359
  <h3 class="hndle"><span><?PHP _e('Backup to Amazon S3','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.amazon.de/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Faws%2Fregistration%2Fregistration-form.html&site-redirect=de&tag=hueskennet-21&linkCode=ur2&camp=1638&creative=6742" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a><img src="http://www.assoc-amazon.de/e/ir?t=hueskennet-21&l=ur2&o=3" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></h3>
360
  <div class="inside">
361
+ <b><?PHP _e('Access Key ID:','backwpup'); ?></b>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key" target="_blank"><?PHP _e('Find it','backwpup'); ?></a><br />
362
+ <input id="awsAccessKey" name="awsAccessKey" type="text" value="<?PHP echo $jobvalue['awsAccessKey'];?>" class="large-text" /><br />
363
+ <b><?PHP _e('Secret Access Key:','backwpup'); ?></b><br />
364
+ <input id="awsSecretKey" name="awsSecretKey" type="password" value="<?PHP echo $jobvalue['awsSecretKey'];?>" class="large-text" /><br />
365
+ <b><?PHP _e('Bucket:','backwpup'); ?></b><br />
366
+ <input id="awsBucketselected" name="awsBucketselected" type="hidden" value="<?PHP echo $jobvalue['awsBucket'];?>" />
367
+ <?PHP if (!empty($jobvalue['awsAccessKey']) and !empty($jobvalue['awsSecretKey'])) backwpup_get_aws_buckets(array('awsAccessKey'=>$jobvalue['awsAccessKey'],'awsSecretKey'=>$jobvalue['awsSecretKey'],'awsselected'=>$jobvalue['awsBucket'])); ?>
368
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?PHP _e('Create Bucket:','backwpup'); ?><input name="newawsBucket" type="text" value="" class="text" /> <select name="awsRegion" title="<?php _e('Bucket Region', 'backwpup'); ?>"><option value=""><?php _e('US-East (Northern Virginia)', 'backwpup'); ?></option><option value="us-west-1"><?php _e('US-West (Northern California)', 'backwpup'); ?></option><option value="EU"><?php _e('EU (Ireland)', 'backwpup'); ?></option><option value="ap-southeast-1"><?php _e('Asia Pacific (Singapore)', 'backwpup'); ?></option><option value="ap-northeast-1"><?php _e('Asia Pacific (Japan)', 'backwpup'); ?></option></select><br />
369
+ <b><?PHP _e('Directory in Bucket:','backwpup'); ?></b><br />
370
+ <input name="awsdir" type="text" value="<?PHP echo $jobvalue['awsdir'];?>" class="large-text" /><br />
371
+ <?PHP _e('Max. Backup Files in Bucket Folder:','backwpup'); ?><input name="awsmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['awsmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
372
+ <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['awsrrs'],true); ?> name="awsrrs" /> <?PHP _e('Save Backups with reduced redundancy!','backwpup'); ?><br />
 
 
 
 
373
  </div>
374
  </div>
375
  <?PHP } ?>
376
 
377
+ <?PHP if (in_array('MSAZURE',$dests) and function_exists('curl_exec')) { ?>
378
  <div id="tomsazure" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
379
  <h3 class="hndle"><span><?PHP _e('Backup to Micosoft Azure (Blob)','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.microsoft.com/windowsazure/offers/" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a></h3>
380
  <div class="inside">
381
+ <b><?PHP _e('Host:','backwpup'); ?></b><br />
382
+ <input id="msazureHost" name="msazureHost" type="text" value="<?PHP echo $jobvalue['msazureHost'];?>" class="large-text" /><span class="description"><?PHP _e('Normely: blob.core.windows.net','backwpup');?></span><br />
383
+ <b><?PHP _e('Account Name:','backwpup'); ?></b><br />
384
+ <input id="msazureAccName" name="msazureAccName" type="text" value="<?PHP echo $jobvalue['msazureAccName'];?>" class="large-text" /><br />
385
+ <b><?PHP _e('Access Key:','backwpup'); ?></b>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://windows.azure.com/" target="_blank"><?PHP _e('Find it','backwpup'); ?></a><br />
386
+ <input id="msazureKey" name="msazureKey" type="password" value="<?PHP echo $jobvalue['msazureKey'];?>" class="large-text" /><br />
387
+ <b><?PHP _e('Container:','backwpup'); ?></b><br />
388
+ <input id="msazureContainerselected" name="msazureContainerselected" type="hidden" value="<?PHP echo $jobvalue['msazureContainer'];?>" />
389
+ <?PHP if (!empty($jobvalue['msazureAccName']) and !empty($jobvalue['msazureKey'])) backwpup_get_msazure_container(array('msazureHost'=>$jobvalue['msazureHost'],'msazureAccName'=>$jobvalue['msazureAccName'],'msazureKey'=>$jobvalue['msazureKey'],'msazureselected'=>$jobvalue['msazureContainer'])); ?>
390
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?PHP _e('Create Container:','backwpup'); ?><input name="newmsazureContainer" type="text" value="" class="text" /> <br />
391
+ <b><?PHP _e('Directory in Container:','backwpup'); ?></b><br />
392
+ <input name="msazuredir" type="text" value="<?PHP echo $jobvalue['msazuredir'];?>" class="large-text" /><br />
393
+ <?PHP _e('Max. Backup Files in Container Folder:','backwpup'); ?><input name="msazuremaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['msazuremaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
 
 
 
 
394
  </div>
395
  </div>
396
  <?PHP } ?>
397
 
398
+ <?PHP if (in_array('RSC',$dests) and function_exists('curl_exec')) { ?>
399
  <div id="torsc" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
400
  <h3 class="hndle"><span><?PHP _e('Backup to Rackspace Cloud','backwpup'); ?></span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.rackspacecloud.com/2073.html" target="_blank"><?PHP _e('Create Account','backwpup'); ?></a></h3>
401
  <div class="inside">
402
+ <b><?PHP _e('Username:','backwpup'); ?></b><br />
403
+ <input id="rscUsername" name="rscUsername" type="text" value="<?PHP echo $jobvalue['rscUsername'];?>" class="large-text" /><br />
404
+ <b><?PHP _e('API Key:','backwpup'); ?></b>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://manage.rackspacecloud.com/APIAccess.do" target="_blank"><?PHP _e('Find it','backwpup'); ?></a><br />
405
+ <input id="rscAPIKey" name="rscAPIKey" type="text" value="<?PHP echo $jobvalue['rscAPIKey'];?>" class="large-text" /><br />
406
+ <b><?PHP _e('Container:','backwpup'); ?></b><br />
407
+ <input id="rscContainerselected" name="rscContainerselected" type="hidden" value="<?PHP echo $jobvalue['rscContainer'];?>" />
408
+ <?PHP if (!empty($jobvalue['rscUsername']) and !empty($jobvalue['rscAPIKey'])) backwpup_get_rsc_container(array('rscUsername'=>$jobvalue['rscUsername'],'rscAPIKey'=>$jobvalue['rscAPIKey'],'rscselected'=>$jobvalue['rscContainer'])); ?>
409
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?PHP _e('Create Container:','backwpup'); ?><input name="newrscContainer" type="text" value="" class="text" /> <br />
410
+ <b><?PHP _e('Directory in Container:','backwpup'); ?></b><br />
411
+ <input name="rscdir" type="text" value="<?PHP echo $jobvalue['rscdir'];?>" class="large-text" /><br />
412
+ <?PHP _e('Max. Backup Files in Container Folder:','backwpup'); ?><input name="rscmaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['rscmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
 
 
 
 
413
  </div>
414
  </div>
415
  <?PHP } ?>
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'])) { ?>
423
+ <span style="color:red;"><?php _e('Not authenticated!', 'backwpup'); ?></span> <input type="submit" name="dropboxauth" class="button-primary" accesskey="d" value="<?php _e('Authenticate!', 'backwpup'); ?>" /><br />
424
+ <?PHP } else { ?>
425
+ <span style="color:green;"><?php _e('Authenticated!', 'backwpup'); ?></span> <input type="submit" name="dropboxauth" class="button-primary" accesskey="d" value="<?php _e('Delete!', 'backwpup'); ?>" /><br />
426
+ <?PHP } ?><br />
427
  <b><?PHP _e('Directory:','backwpup'); ?></b><br />
428
  <input name="dropedir" type="text" value="<?PHP echo $jobvalue['dropedir'];?>" class="user large-text" /><br />
429
+ <?PHP _e('Max. Backup Files in Dopbox Folder:','backwpup'); ?><input name="dropemaxbackups" type="text" size="3" value="<?PHP echo $jobvalue['dropemaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will be deleted first.)','backwpup');?></span><br />
430
  </div>
431
  </div>
432
  <?PHP } ?>
434
  <div id="tomail" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
435
  <h3 class="hndle"><span><?PHP _e('Backup to E-Mail','backwpup'); ?></span></h3>
436
  <div class="inside">
437
+ <b><?PHP _e('E-mail address:','backwpup'); ?></b><br />
438
  <input name="mailaddress" id="mailaddress" type="text" value="<?PHP echo $jobvalue['mailaddress'];?>" class="large-text" /><br />
439
  <?PHP if (!is_numeric($jobvalue['mailefilesize'])) $jobvalue['mailefilesize']=0; ?>
440
  <?PHP echo __('Max. File Size for sending Backups with mail:','backwpup').'<input name="mailefilesize" type="text" value="'.$jobvalue['mailefilesize'].'" class="small-text" />MB<br />';?>
app/options-save.php CHANGED
@@ -189,9 +189,10 @@ function backwpup_backups_operations($action) {
189
  }
190
  } elseif ($backups['type']=='DROPBOX') {
191
  if (class_exists('Dropbox')) {
192
- if (!empty($jobvalue['dropemail']) and !empty($jobvalue['dropepass'])) {
193
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
194
- $dropbox->token($jobvalue['dropemail'], base64_decode($jobvalue['dropepass']));
 
195
  $dropbox->fileopsDelete($backups['file']);
196
  }
197
  }
@@ -297,7 +298,8 @@ function backwpup_backups_operations($action) {
297
  $jobid=$_GET['jobid'];
298
  try {
299
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
300
- $dropbox->token($jobs[$jobid]['dropemail'], base64_decode($jobs[$jobid]['dropepass']));
 
301
  $dropfile = $dropbox->filesGet($_GET['file']);
302
  } catch (Exception $e) {
303
  die($e->getMessage());
@@ -316,7 +318,7 @@ function backwpup_backups_operations($action) {
316
  echo base64_decode($dropfile['data']);
317
  die();
318
  } else {
319
- header('HTTP/1.0 '.$s3file->status.' Not Found');
320
  die();
321
  }
322
  break;
@@ -374,7 +376,7 @@ function backwpup_backups_operations($action) {
374
  die();
375
  } else {
376
  header('HTTP/1.0 404 Not Found');
377
- die(__('File does not exist.', 'backwpup'));
378
  }
379
  } catch (Exception $e) {
380
  die($e->getMessage());
@@ -499,8 +501,6 @@ function backwpup_save_job() { //Save Job settings
499
  $jobs[$jobid]['ftpmaxbackups']=(int)$_POST['ftpmaxbackups'];
500
  $jobs[$jobid]['ftpssl']= $_POST['ftpssl']==1 ? true : false;
501
  $jobs[$jobid]['ftppasv']= $_POST['ftppasv']==1 ? true : false;
502
- $jobs[$jobid]['dropemail']=$_POST['dropemail'];
503
- $jobs[$jobid]['dropepass']=base64_encode($_POST['dropepass']);
504
  $jobs[$jobid]['dropemaxbackups']=(int)$_POST['dropemaxbackups'];
505
  $jobs[$jobid]['dropedir']=$_POST['dropedir'];
506
  $jobs[$jobid]['awsAccessKey']=$_POST['awsAccessKey'];
@@ -537,7 +537,7 @@ function backwpup_save_job() { //Save Job settings
537
  $s3->create_bucket($_POST['newawsBucket'], $_POST['awsRegion']);
538
  $jobs[$jobid]['awsBucket']=$_POST['newawsBucket'];
539
  } catch (Exception $e) {
540
- $backwpup_message=__($e->getMessage(),'backwpup');
541
  }
542
  }
543
 
@@ -551,7 +551,7 @@ function backwpup_save_job() { //Save Job settings
551
  $result = $storageClient->createContainer($_POST['newmsazureContainer']);
552
  $jobs[$jobid]['msazureContainer']=$result->Name;
553
  } catch (Exception $e) {
554
- $backwpup_message=__($e->getMessage(),'backwpup');
555
  }
556
  }
557
 
@@ -567,10 +567,27 @@ function backwpup_save_job() { //Save Job settings
567
  $public_container->make_private();
568
  }
569
  } catch (Exception $e) {
570
- $backwpup_message=__($e->getMessage(),'backwpup');
571
  }
572
  }
573
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
574
  //save chages
575
  update_option('backwpup_jobs',$jobs);
576
  $_POST['jobid']=$jobid;
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);
194
+ $dropbox->setOAuthToken($jobvalue['dropetoken']);
195
+ $dropbox->setOAuthTokenSecret($jobvalue['dropesecret']);
196
  $dropbox->fileopsDelete($backups['file']);
197
  }
198
  }
298
  $jobid=$_GET['jobid'];
299
  try {
300
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
301
+ $dropbox->setOAuthToken($jobs[$jobid]['dropetoken']);
302
+ $dropbox->setOAuthTokenSecret($jobs[$jobid]['dropesecret']);
303
  $dropfile = $dropbox->filesGet($_GET['file']);
304
  } catch (Exception $e) {
305
  die($e->getMessage());
318
  echo base64_decode($dropfile['data']);
319
  die();
320
  } else {
321
+ header('HTTP/1.0 404 Not Found');
322
  die();
323
  }
324
  break;
376
  die();
377
  } else {
378
  header('HTTP/1.0 404 Not Found');
379
+ die();
380
  }
381
  } catch (Exception $e) {
382
  die($e->getMessage());
501
  $jobs[$jobid]['ftpmaxbackups']=(int)$_POST['ftpmaxbackups'];
502
  $jobs[$jobid]['ftpssl']= $_POST['ftpssl']==1 ? true : false;
503
  $jobs[$jobid]['ftppasv']= $_POST['ftppasv']==1 ? true : false;
 
 
504
  $jobs[$jobid]['dropemaxbackups']=(int)$_POST['dropemaxbackups'];
505
  $jobs[$jobid]['dropedir']=$_POST['dropedir'];
506
  $jobs[$jobid]['awsAccessKey']=$_POST['awsAccessKey'];
537
  $s3->create_bucket($_POST['newawsBucket'], $_POST['awsRegion']);
538
  $jobs[$jobid]['awsBucket']=$_POST['newawsBucket'];
539
  } catch (Exception $e) {
540
+ $backwpup_message.=__($e->getMessage(),'backwpup').'<br />';
541
  }
542
  }
543
 
551
  $result = $storageClient->createContainer($_POST['newmsazureContainer']);
552
  $jobs[$jobid]['msazureContainer']=$result->Name;
553
  } catch (Exception $e) {
554
+ $backwpup_message.=__($e->getMessage(),'backwpup').'<br />';
555
  }
556
  }
557
 
567
  $public_container->make_private();
568
  }
569
  } catch (Exception $e) {
570
+ $backwpup_message.=__($e->getMessage(),'backwpup').'<br />';
571
  }
572
  }
573
+
574
+ if ($_POST['dropboxauth']==__('Authenticate!', 'backwpup')) {
575
+ if (!class_exists('Dropbox'))
576
+ require_once (dirname(__FILE__).'/libs/dropbox.php');
577
+ $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
578
+ // request request tokens
579
+ $response = $dropbox->oAuthRequestToken();
580
+ // save job id and referer
581
+ update_option('backwpup_dropboxrequest',array('jobid'=>$_GET['jobid'],'oAuthRequestToken' => $response['oauth_token'],'oAuthRequestTokenSecret' => $response['oauth_token_secret'],'referer'=>$_ENV["HTTP_REFERER"]));
582
+ // let the user authorize (user will be redirected)
583
+ $response = $dropbox->oAuthAuthorize($response['oauth_token'], plugins_url('dropbox-auth.php',__FILE__).'?wpabs='.trailingslashit(ABSPATH));
584
+ }
585
+ if ($_POST['dropboxauth']==__('Delete!', 'backwpup')) {
586
+ $jobs[$jobid]['dropetoken']='';
587
+ $jobs[$jobid]['dropesecret']='';
588
+ $backwpup_message.=__('Dropbox authentication deleted!','backwpup').'<br />';
589
+ }
590
+
591
  //save chages
592
  update_option('backwpup_jobs',$jobs);
593
  $_POST['jobid']=$jobid;
app/options-settings.php CHANGED
@@ -60,15 +60,15 @@ $cfg=get_option('backwpup');
60
  <input name="dirlogs" type="text" value="<?PHP echo $cfg['dirlogs'];?>" class="large-text" /><br />
61
  <b><?PHP _e('Max. Log Files in Folder:','backwpup'); ?></b><br />
62
  <input name="maxlogs" id="maxlogs" size="3" type="text" value="<?PHP echo $cfg['maxlogs'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
63
- <input class="checkbox" value="1" type="checkbox" <?php checked($jobvalue['gzlogs'],true); ?> name="gzlogs" <?php if (!function_exists('gzopen')) echo "disabled=\"disabled\""; ?> /><b>&nbsp;<?PHP _e('Gzip Log files!','backwpup'); ?></b><br />
64
- <input class="checkbox" value="1" type="checkbox" <?php checked($cfg['logfilelist'],true); ?> name="logfilelist" /><b>&nbsp;<?PHP _e('Log deteiled File list.','backwpup'); ?></b><br />
65
  </div>
66
  </div>
67
 
68
  <div id="disablewpcron" class="postbox">
69
  <h3 class="hndle"><span><?PHP _e('Disable WP-Cron','backwpup'); ?></span></h3>
70
  <div class="inside">
71
- <input class="checkbox" id="disablewpcron" type="checkbox"<?php checked($cfg['disablewpcron'],true,true);?> name="disablewpcron" value="1"/> <?PHP _e('Use Cron job of Hoster and disable WP_Cron','backwpup'); ?><br />
72
  <?PHP _e('You must set up a cron job that calls:','backwpup'); ?><br />
73
  <i> php -q <?PHP echo ABSPATH.'wp-cron.php'; ?></i><br />
74
  <?PHP _e('or URL:','backwpup'); ?> <i><?PHP echo trailingslashit(get_option('siteurl')).'wp-cron.php'; ?></i><br />
60
  <input name="dirlogs" type="text" value="<?PHP echo $cfg['dirlogs'];?>" class="large-text" /><br />
61
  <b><?PHP _e('Max. Log Files in Folder:','backwpup'); ?></b><br />
62
  <input name="maxlogs" id="maxlogs" size="3" type="text" value="<?PHP echo $cfg['maxlogs'];?>" class="small-text" /><span class="description"><?PHP _e('(Oldest files will deleted first.)','backwpup');?></span><br />
63
+ <input class="checkbox" value="1" type="checkbox" <?php checked($cfg['gzlogs'],true); ?> name="gzlogs" <?php if (!function_exists('gzopen')) echo "disabled=\"disabled\""; ?> /><b>&nbsp;<?PHP _e('Gzip Log files!','backwpup'); ?></b><br />
64
+ <input class="checkbox" value="1" type="checkbox" <?php checked($cfg['logfilelist'],true); ?> name="logfilelist" /><b>&nbsp;<?PHP _e('Log a detailed file list.','backwpup'); ?></b><br />
65
  </div>
66
  </div>
67
 
68
  <div id="disablewpcron" class="postbox">
69
  <h3 class="hndle"><span><?PHP _e('Disable WP-Cron','backwpup'); ?></span></h3>
70
  <div class="inside">
71
+ <input class="checkbox" id="disablewpcron" type="checkbox"<?php checked($cfg['disablewpcron'],true,true);?> name="disablewpcron" value="1"/> <?PHP _e('Use your host\'s Cron Job and disable WP-Cron','backwpup'); ?><br />
72
  <?PHP _e('You must set up a cron job that calls:','backwpup'); ?><br />
73
  <i> php -q <?PHP echo ABSPATH.'wp-cron.php'; ?></i><br />
74
  <?PHP _e('or URL:','backwpup'); ?> <i><?PHP echo trailingslashit(get_option('siteurl')).'wp-cron.php'; ?></i><br />
app/options-tools.php CHANGED
@@ -50,7 +50,7 @@ if ( !defined('ABSPATH') )
50
  <input type="submit" name="dbrestore" class="button-primary" value="<?php _e('Restore', 'backwpup'); ?>" />
51
  <?PHP
52
  } else {
53
- echo __('Copy SQL file to Blog root folder to use restore.', 'backwpup')."<br />";
54
  }
55
  }
56
  ?>
50
  <input type="submit" name="dbrestore" class="button-primary" value="<?php _e('Restore', 'backwpup'); ?>" />
51
  <?PHP
52
  } else {
53
+ echo __('Copy SQL file to blog root folder to use for a restoration.', 'backwpup')."<br />";
54
  }
55
  }
56
  ?>
app/php-functions.php CHANGED
@@ -99,14 +99,18 @@ function backwpup_options_load() {
99
  return;
100
  //Css for Admin Section
101
  wp_enqueue_style('BackWpup',plugins_url('css/options.css',__FILE__),'',BACKWPUP_VERSION,'screen');
 
 
 
102
  wp_enqueue_script('BackWpupOptions',plugins_url('js/options.js',__FILE__),'',BACKWPUP_VERSION,true);
 
103
  add_contextual_help($current_screen,
104
  '<div class="metabox-prefs">'.
105
  '<a href="http://wordpress.org/tags/backwpup" target="_blank">'.__('Support').'</a>'.
106
  ' | <a href="http://wordpress.org/extend/plugins/backwpup/faq/" target="_blank">' . __('FAQ') . '</a>'.
107
  ' | <a href="http://danielhuesken.de/portfolio/backwpup" target="_blank">' . __('Plugin Homepage', 'backwpup') . '</a>'.
108
  ' | <a href="http://wordpress.org/extend/plugins/backwpup" target="_blank">' . __('Plugin Home on WordPress.org', 'backwpup') . '</a>'.
109
- ' | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=daniel%40huesken-net%2ede&amp;item_name=Daniel%20Huesken%20Plugin%20Donation&amp;item_number=BackWPup&amp;no_shipping=0&amp;no_note=1&amp;tax=0&amp;currency_code=EUR&amp;lc=DE&amp;bn=PP%2dDonationsBF&amp;charset=UTF%2d8" target="_blank">' . __('Donate') . '</a>'.
110
  ' | <script type="text/javascript">
111
  var flattr_btn = \'compact\'
112
  var flattr_url = \'http://danielhuesken.de/portfolio/backwpup/\'
@@ -117,7 +121,7 @@ function backwpup_options_load() {
117
  __('Author:', 'backwpup').' <a href="http://danielhuesken.de" target="_blank">Daniel H&uuml;sken</a>'.
118
  '</div>'
119
  );
120
-
121
  if ($_REQUEST['action2']!='-1' and !empty($_REQUEST['doaction2']))
122
  $_REQUEST['action']=$_REQUEST['action2'];
123
 
@@ -133,7 +137,7 @@ function backwpup_options_load() {
133
  $table->prepare_items();
134
  break;
135
  case 'edit':
136
- if (!empty($_POST['submit'])) {
137
  require_once(dirname(__FILE__).'/options-save.php');
138
  $backwpup_message=backwpup_save_job();
139
  }
@@ -710,14 +714,20 @@ function backwpup_env_checks() {
710
  $message.=__('- PHP 5.2.0 or higher needed!','backwpup') . '<br />';
711
  $checks=false;
712
  }
 
 
 
713
  if (!is_dir($cfg['dirlogs'])) { // check logs folder
714
- $message.=__('- Logs Folder not exists (Try too create it on first Job run):','backwpup') . ' '.$cfg['dirlogs'].'<br />';
715
  }
716
  if (!is_writable($cfg['dirlogs'])) { // check logs folder
717
  $message.=__('- Logs Folder not writeable:','backwpup') . ' '.$cfg['dirlogs'].'<br />';
718
  }
 
 
 
719
  if (!is_dir($cfg['dirtemp'])) { // check Temp folder
720
- $message.=__('- Temp Folder not exists (Try too create it on first Job run):','backwpup') . ' '.$cfg['dirtemp'].'<br />';
721
  }
722
  if (!is_writable($cfg['dirtemp'])) { // check Temp folder
723
  $message.=__('- Temp Folder not writeable:','backwpup') . ' '.$cfg['dirtemp'].'<br />';
99
  return;
100
  //Css for Admin Section
101
  wp_enqueue_style('BackWpup',plugins_url('css/options.css',__FILE__),'',BACKWPUP_VERSION,'screen');
102
+ wp_enqueue_script('common');
103
+ wp_enqueue_script('wp-lists');
104
+ wp_enqueue_script('postbox');
105
  wp_enqueue_script('BackWpupOptions',plugins_url('js/options.js',__FILE__),'',BACKWPUP_VERSION,true);
106
+
107
  add_contextual_help($current_screen,
108
  '<div class="metabox-prefs">'.
109
  '<a href="http://wordpress.org/tags/backwpup" target="_blank">'.__('Support').'</a>'.
110
  ' | <a href="http://wordpress.org/extend/plugins/backwpup/faq/" target="_blank">' . __('FAQ') . '</a>'.
111
  ' | <a href="http://danielhuesken.de/portfolio/backwpup" target="_blank">' . __('Plugin Homepage', 'backwpup') . '</a>'.
112
  ' | <a href="http://wordpress.org/extend/plugins/backwpup" target="_blank">' . __('Plugin Home on WordPress.org', 'backwpup') . '</a>'.
113
+ ' | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=daniel%40huesken-net%2ede&amp;item_name=Daniel%20Huesken%20Plugin%20Donation&amp;item_number=BackWPup&amp;no_shipping=0&amp;no_note=1&amp;tax=0&amp;bn=PP%2dDonationsBF&amp;charset=UTF%2d8" target="_blank">' . __('Donate') . '</a>'.
114
  ' | <script type="text/javascript">
115
  var flattr_btn = \'compact\'
116
  var flattr_url = \'http://danielhuesken.de/portfolio/backwpup/\'
121
  __('Author:', 'backwpup').' <a href="http://danielhuesken.de" target="_blank">Daniel H&uuml;sken</a>'.
122
  '</div>'
123
  );
124
+
125
  if ($_REQUEST['action2']!='-1' and !empty($_REQUEST['doaction2']))
126
  $_REQUEST['action']=$_REQUEST['action2'];
127
 
137
  $table->prepare_items();
138
  break;
139
  case 'edit':
140
+ if (!empty($_POST['submit']) or !empty($_POST['dropboxauth'])) {
141
  require_once(dirname(__FILE__).'/options-save.php');
142
  $backwpup_message=backwpup_save_job();
143
  }
714
  $message.=__('- PHP 5.2.0 or higher needed!','backwpup') . '<br />';
715
  $checks=false;
716
  }
717
+ if (!is_dir($cfg['dirlogs'])) { // create logs folder if it not exists
718
+ @mkdir($cfg['dirlogs'],0755,true);
719
+ }
720
  if (!is_dir($cfg['dirlogs'])) { // check logs folder
721
+ $message.=__('- Logs Folder not exists:','backwpup') . ' '.$cfg['dirlogs'].'<br />';
722
  }
723
  if (!is_writable($cfg['dirlogs'])) { // check logs folder
724
  $message.=__('- Logs Folder not writeable:','backwpup') . ' '.$cfg['dirlogs'].'<br />';
725
  }
726
+ if (!is_dir($cfg['dirtemp'])) { // create Temp folder if it not exists
727
+ @mkdir($cfg['dirtemp'],0755,true);
728
+ }
729
  if (!is_dir($cfg['dirtemp'])) { // check Temp folder
730
+ $message.=__('- Temp Folder not exists:','backwpup') . ' '.$cfg['dirtemp'].'<br />';
731
  }
732
  if (!is_writable($cfg['dirtemp'])) { // check Temp folder
733
  $message.=__('- Temp Folder not writeable:','backwpup') . ' '.$cfg['dirtemp'].'<br />';
app/php5-functions.php CHANGED
@@ -256,12 +256,18 @@ function backwpup_check_job_vars($jobsettings,$jobid='') {
256
 
257
  if (!isset($jobsettings['rscmaxbackups']) or !is_int($jobsettings['rscmaxbackups']))
258
  $jobsettings['rscmaxbackups']=0;
 
 
 
 
 
 
 
 
 
259
 
260
- if (!isset($jobsettings['dropemail']) or !is_string($jobsettings['dropemail']))
261
- $jobsettings['dropemail']='';
262
-
263
- if (!isset($jobsettings['dropepass']) or !is_string($jobsettings['dropepass']))
264
- $jobsettings['dropepass']='';
265
 
266
  if (!isset($jobsettings['dropedir']) or !is_string($jobsettings['dropedir']) or $jobsettings['dropedir']=='/')
267
  $jobsettings['dropedir']='';
@@ -286,7 +292,7 @@ function backwpup_get_backup_files($onlyjobid='') {
286
  $filecounter=0;
287
  $files=array();
288
  $donefolders=array();
289
- if (extension_loaded('curl') or @dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll')) {
290
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
291
  if (!class_exists('Microsoft_WindowsAzure_Storage_Blob'))
292
  require_once 'Microsoft/WindowsAzure/Storage/Blob.php';
@@ -294,7 +300,7 @@ function backwpup_get_backup_files($onlyjobid='') {
294
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
295
  if (!class_exists('CF_Authentication'))
296
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
297
- if (!class_exists('Dropbox'))
298
  require_once(dirname(__FILE__).'/libs/dropbox.php');
299
  }
300
 
@@ -328,11 +334,12 @@ function backwpup_get_backup_files($onlyjobid='') {
328
  }
329
  }
330
  //Get files/filinfo from Dropbox
331
- if (class_exists('Dropbox') and in_array('DROPBOX',$dests) and !in_array($jobvalue['dropemail'].'|'.$jobvalue['dropepass'].'|'.$jobvalue['dropedir'],$donefolders)) {
332
- if (!empty($jobvalue['dropemail']) and !empty($jobvalue['dropepass'])) {
333
  try {
334
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
335
- $dropbox->token($jobvalue['dropemail'], base64_decode($jobvalue['dropepass']));
 
336
  $contents = $dropbox->metadata($jobvalue['dropedir']);
337
  if (is_array($contents)) {
338
  foreach ($contents['contents'] as $object) {
@@ -348,7 +355,7 @@ function backwpup_get_backup_files($onlyjobid='') {
348
  }
349
  }
350
  }
351
- $donefolders[]=$jobvalue['dropemail'].'|'.$jobvalue['dropepass'].'|'.$jobvalue['dropedir'];
352
  } catch (Exception $e) {
353
  }
354
  }
@@ -432,7 +439,7 @@ function backwpup_get_backup_files($onlyjobid='') {
432
  }
433
  }
434
  //Get files/filinfo from FTP
435
- if (!empty($jobvalue['ftphost']) and in_array('FTP',$dests) and !empty($jobvalue['ftpuser']) and !empty($jobvalue['ftppass']) and !in_array($jobvalue['ftphost'].'|'.$jobvalue['ftpuser'].'|'.$jobvalue['ftpdir'],$donefolders)) {
436
  $ftpport=21;
437
  $ftphost=$jobvalue['ftphost'];
438
  if (false !== strpos($jobvalue['ftphost'],':')) //look for port
256
 
257
  if (!isset($jobsettings['rscmaxbackups']) or !is_int($jobsettings['rscmaxbackups']))
258
  $jobsettings['rscmaxbackups']=0;
259
+
260
+ if (isset($jobsettings['dropemail']))
261
+ unset($jobsettings['dropemail']);
262
+
263
+ if (isset($jobsettings['dropepass']))
264
+ unset($jobsettings['dropepass']);
265
+
266
+ if (!isset($jobsettings['dropetoken']) or !is_string($jobsettings['dropetoken']))
267
+ $jobsettings['dropetoken']='';
268
 
269
+ if (!isset($jobsettings['dropesecret']) or !is_string($jobsettings['dropesecret']))
270
+ $jobsettings['dropesecret']='';
 
 
 
271
 
272
  if (!isset($jobsettings['dropedir']) or !is_string($jobsettings['dropedir']) or $jobsettings['dropedir']=='/')
273
  $jobsettings['dropedir']='';
292
  $filecounter=0;
293
  $files=array();
294
  $donefolders=array();
295
+ if (function_exists('curl_exec')) {
296
  set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/libs');
297
  if (!class_exists('Microsoft_WindowsAzure_Storage_Blob'))
298
  require_once 'Microsoft/WindowsAzure/Storage/Blob.php';
300
  require_once(dirname(__FILE__).'/libs/aws/sdk.class.php');
301
  if (!class_exists('CF_Authentication'))
302
  require_once(dirname(__FILE__).'/libs/rackspace/cloudfiles.php');
303
+ if (!class_exists('Dropbox') and function_exists('json_decode'))
304
  require_once(dirname(__FILE__).'/libs/dropbox.php');
305
  }
306
 
334
  }
335
  }
336
  //Get files/filinfo from Dropbox
337
+ if (class_exists('Dropbox') and in_array('DROPBOX',$dests) and !in_array($jobvalue['dropetoken'].'|'.$jobvalue['dropesecret'].'|'.$jobvalue['dropedir'],$donefolders)) {
338
+ if (!empty($jobvalue['dropetoken']) and !empty($jobvalue['dropesecret'])) {
339
  try {
340
  $dropbox = new Dropbox(BACKWPUP_DROPBOX_APP_KEY, BACKWPUP_DROPBOX_APP_SECRET);
341
+ $dropbox->setOAuthToken($jobvalue['dropetoken']);
342
+ $dropbox->setOAuthTokenSecret($jobvalue['dropesecret']);
343
  $contents = $dropbox->metadata($jobvalue['dropedir']);
344
  if (is_array($contents)) {
345
  foreach ($contents['contents'] as $object) {
355
  }
356
  }
357
  }
358
+ $donefolders[]=$jobvalue['dropetoken'].'|'.$jobvalue['dropesecret'].'|'.$jobvalue['dropedir'];
359
  } catch (Exception $e) {
360
  }
361
  }
439
  }
440
  }
441
  //Get files/filinfo from FTP
442
+ if (!empty($jobvalue['ftphost']) and in_array('FTP',$dests) and function_exists('ftp_connect') and !empty($jobvalue['ftpuser']) and !empty($jobvalue['ftppass']) and !in_array($jobvalue['ftphost'].'|'.$jobvalue['ftpuser'].'|'.$jobvalue['ftpdir'],$donefolders)) {
443
  $ftpport=21;
444
  $ftphost=$jobvalue['ftphost'];
445
  if (false !== strpos($jobvalue['ftphost'],':')) //look for port
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.0
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
@@ -34,9 +34,9 @@ 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.0');
38
  //Set User Capability
39
- define('BACKWPUP_USER_CAPABILITY', 'export');
40
  //Set useable destinations
41
  if (!defined('BACKWPUP_DESTS'))
42
  define('BACKWPUP_DESTS', 'S3,RSC,FTP,DROPBOX,MSAZURE');
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.1
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.6.1');
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');
lang/backwpup-es_ES.mo ADDED
Binary file
lang/backwpup-es_ES.po ADDED
@@ -0,0 +1,1699 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2010 BackWPup
2
+ # This file is distributed under the same license as the BackWPup package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: BackWPup 1.5.0 en español\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2011-03-07 09:19+0100\n"
8
+ "PO-Revision-Date: 2011-03-07 09:20+0100\n"
9
+ "Last-Translator: Eduardo Larequi <elarequi@educacion.navarra.es>\n"
10
+ "Language-Team: Eduardo Larequi <elarequi@gmail.com>\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Poedit-Language: Spanish\n"
15
+ "X-Poedit-Country: Spain\n"
16
+ "X-Poedit-Basepath: ..\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_c;_x;esc_html__\n"
18
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #: app/backwpup_dojob.php:64
22
+ #, php-format
23
+ msgid "BackWPup Log for %1$s from %2$s at %3$s"
24
+ msgstr "Registro de BackWPup para %1$s, de %2$s, a las %3$s"
25
+
26
+ #: app/backwpup_dojob.php:74
27
+ msgid "Working Job will closed!!! And a new started!!!"
28
+ msgstr "La tarea en ejecución se terminará y comenzará una nueva."
29
+
30
+ #: app/backwpup_dojob.php:77
31
+ #: app/backwpup_dojob.php:241
32
+ #: app/options-save.php:63
33
+ msgid "[ERROR]"
34
+ msgstr "[ERROR]"
35
+
36
+ #: app/backwpup_dojob.php:77
37
+ msgid "Backup Aborted working to long!!!"
38
+ msgstr "La copia de seguridad ha sido abortada. Tiempo de ejecución demasiado largo."
39
+
40
+ #: app/backwpup_dojob.php:94
41
+ #, php-format
42
+ msgid "Job %1$s already running!!!"
43
+ msgstr "La tarea %1$s ya se está ejecutando."
44
+
45
+ #: app/backwpup_dojob.php:131
46
+ #, php-format
47
+ msgid "PHP Safe Mode is on!!! Max exec time is %1$d sec."
48
+ msgstr "EL modo seguro (Safe Mode) de PHP está activado. El tiempo máximo de ejecución es de %1$d seg."
49
+
50
+ #: app/backwpup_dojob.php:135
51
+ #, php-format
52
+ msgid "Memory limit set to %1$s ,because can not use PHP: memory_get_usage() function to dynamically increase the Memory!"
53
+ msgstr "El límite de memoria se ha establecido en %1$s, porque no se puede tuilizar la función memory_get_usage() de PHP para incrementar dinámicamente la memoria."
54
+
55
+ #: app/backwpup_dojob.php:203
56
+ msgid "old Log files deleted!!!"
57
+ msgstr "los ficheros antiguos del registro han sido borrados."
58
+
59
+ #: app/backwpup_dojob.php:208
60
+ #, php-format
61
+ msgid "Backup Archive File size is %1s"
62
+ msgstr "El fichero de copia de seguridad tiene un tamaño de %1s"
63
+
64
+ #: app/backwpup_dojob.php:210
65
+ #, php-format
66
+ msgid "Job done in %1s sec."
67
+ msgstr "Tarea realizada en %1s seg."
68
+
69
+ #: app/backwpup_dojob.php:235
70
+ msgid "[WARNING]"
71
+ msgstr "[ADVERTENCIA]"
72
+
73
+ #: app/backwpup_dojob.php:245
74
+ msgid "[DEPRECATED]"
75
+ msgstr "[OBSOLETO]"
76
+
77
+ #: app/backwpup_dojob.php:248
78
+ msgid "[STRICT NOTICE]"
79
+ msgstr "[AVISO DE SUMA IMPORTANCIA]"
80
+
81
+ #: app/backwpup_dojob.php:251
82
+ msgid "[RECOVERABLE ERROR]"
83
+ msgstr "[ERROR RECUPERABLE]"
84
+
85
+ #: app/backwpup_dojob.php:307
86
+ #, php-format
87
+ msgid "Can not create Folder: %1$s"
88
+ msgstr "No se ha podido crear el directorio: %1$s"
89
+
90
+ #: app/backwpup_dojob.php:312
91
+ #, php-format
92
+ msgid "Can not write to Folder: %1$s"
93
+ msgstr "No se puede escribir en el directorio: %1$s"
94
+
95
+ #: app/backwpup_dojob.php:346
96
+ #, php-format
97
+ msgid "PHP Safe Mode is on!!! Can not increase Memory Limit is %1$s"
98
+ msgstr "El modo seguro (Safe Mode) de PHP está activado. No se puede incrementar el límite de memoria, de %1$s"
99
+
100
+ #: app/backwpup_dojob.php:373
101
+ #, php-format
102
+ msgid "Memory increased from %1$s to %2$s"
103
+ msgstr "Memoria incrementada de %1$s a %2$s"
104
+
105
+ #: app/backwpup_dojob.php:375
106
+ #, php-format
107
+ msgid "Can not increase Memory Limit is %1$s"
108
+ msgstr "No se ha podido incrementar el límite de memoria, de %1$s"
109
+
110
+ #: app/backwpup_dojob.php:385
111
+ msgid "Set Blog to Maintenance Mode"
112
+ msgstr "MIentras se realiza la copia de seguridad de la base de datos, el blog se ha puesto en modo de mantenimiento"
113
+
114
+ #: app/backwpup_dojob.php:401
115
+ msgid "Set Blog to normal Mode"
116
+ msgstr "Finalizada la copia de seguridad de la base de datos, el blog ha vuelto al modo normal"
117
+
118
+ #: app/backwpup_dojob.php:417
119
+ msgid "Run Database check..."
120
+ msgstr "Ejecutar comprobación de la base de datos..."
121
+
122
+ #: app/backwpup_dojob.php:432
123
+ #: app/backwpup_dojob.php:434
124
+ #: app/backwpup_dojob.php:436
125
+ #, php-format
126
+ msgid "Result of table check for %1$s is: %2$s"
127
+ msgstr "El resultado de la verificación de la tabla %1$s es: %2$s"
128
+
129
+ #: app/backwpup_dojob.php:439
130
+ #: app/backwpup_dojob.php:451
131
+ #: app/backwpup_dojob.php:475
132
+ #: app/backwpup_dojob.php:485
133
+ #: app/backwpup_dojob.php:530
134
+ #: app/backwpup_dojob.php:542
135
+ #: app/backwpup_dojob.php:669
136
+ #, php-format
137
+ msgid "BackWPup database error %1$s for query %2$s"
138
+ msgstr "Error %1$s de la base de datos para la consulta %2$s"
139
+
140
+ #: app/backwpup_dojob.php:444
141
+ #: app/backwpup_dojob.php:446
142
+ #: app/backwpup_dojob.php:448
143
+ #, php-format
144
+ msgid "Result of table repair for %1$s is: %2$s"
145
+ msgstr "El resultado de la reparación de la tabla %1$s es: %2$s"
146
+
147
+ #: app/backwpup_dojob.php:456
148
+ msgid "Database check done!"
149
+ msgstr "Verificación de la base de datos realizada."
150
+
151
+ #: app/backwpup_dojob.php:458
152
+ msgid "No Tables to check"
153
+ msgstr "No hay tablas que verificar"
154
+
155
+ #: app/backwpup_dojob.php:523
156
+ msgid "Run Database Dump to file..."
157
+ msgstr "Ejecutar el volcado de la base de datos al fichero..."
158
+
159
+ #: app/backwpup_dojob.php:575
160
+ msgid "Dump Database table: "
161
+ msgstr "Volcar la tabla de la base de datos:"
162
+
163
+ #: app/backwpup_dojob.php:590
164
+ msgid "Database Dump done!"
165
+ msgstr "Volcado de la base de datos realizado."
166
+
167
+ #: app/backwpup_dojob.php:592
168
+ msgid "Can not create Database Dump file"
169
+ msgstr "No se puede crear un fichero de volcado de la base de datos"
170
+
171
+ #: app/backwpup_dojob.php:595
172
+ msgid "No Tables to Dump"
173
+ msgstr "No hay tablas para realizar un volcado"
174
+
175
+ #: app/backwpup_dojob.php:601
176
+ msgid "Add Database Dump to Backup:"
177
+ msgstr "Añadir volcado de la base de datos a la copia de seguridad:"
178
+
179
+ #: app/backwpup_dojob.php:611
180
+ #: app/backwpup_dojob.php:628
181
+ msgid "Run Wordpress Export to XML file..."
182
+ msgstr "Ejecutar la exportación de WordPress a un fichero XML..."
183
+
184
+ #: app/backwpup_dojob.php:620
185
+ msgid "cURL:"
186
+ msgstr "cURL:"
187
+
188
+ #: app/backwpup_dojob.php:630
189
+ msgid "Export to XML done!"
190
+ msgstr "Exportación a XML realizada."
191
+
192
+ #: app/backwpup_dojob.php:632
193
+ msgid "Can not Export to XML!"
194
+ msgstr "No se puede exportar a XML."
195
+
196
+ #: app/backwpup_dojob.php:635
197
+ msgid "Can not Export to XML! no cURL or allow_url_fopen Support!"
198
+ msgstr "No se puede exportar a XML: las funciones cURL o allow_url_fopen no se pueden utilizar."
199
+
200
+ #: app/backwpup_dojob.php:639
201
+ msgid "Add XML Export to Backup:"
202
+ msgstr "Añadir fichero XML de exportación a la copia de seguridad:"
203
+
204
+ #: app/backwpup_dojob.php:648
205
+ msgid "Run Database optimize..."
206
+ msgstr "Ejecutar optimización de la base de datos..."
207
+
208
+ #: app/backwpup_dojob.php:662
209
+ #: app/backwpup_dojob.php:664
210
+ #: app/backwpup_dojob.php:666
211
+ #, php-format
212
+ msgid "Result of table optimize for %1$s is: %2$s"
213
+ msgstr "El resultado de la optimización de la tabla %1$s es: %2$s"
214
+
215
+ #: app/backwpup_dojob.php:672
216
+ msgid "Database optimize done!"
217
+ msgstr "Optimización de la base de datos realizada."
218
+
219
+ #: app/backwpup_dojob.php:675
220
+ msgid "No Tables to optimize"
221
+ msgstr "No hay tablas que optimizar"
222
+
223
+ #: app/backwpup_dojob.php:693
224
+ msgid "File or Folder is not readable:"
225
+ msgstr "El fichero o el directorio no se puede leer:"
226
+
227
+ #: app/backwpup_dojob.php:695
228
+ msgid "Link not followed:"
229
+ msgstr "No se ha seguido el enlace:"
230
+
231
+ #: app/backwpup_dojob.php:703
232
+ msgid "Is not a file or directory:"
233
+ msgstr "No es un fichero o un directorio:"
234
+
235
+ #: app/backwpup_dojob.php:713
236
+ msgid "Make a list of files to Backup ...."
237
+ msgstr "Hacer una lista de ficheros para la copia de seguridad..."
238
+
239
+ #: app/backwpup_dojob.php:762
240
+ msgid "No files to Backup"
241
+ msgstr "No hay ficheros para la copia de seguridadd"
242
+
243
+ #: app/backwpup_dojob.php:764
244
+ msgid "Files to Backup:"
245
+ msgstr "Ficheros para la copia de seguridad:"
246
+
247
+ #: app/backwpup_dojob.php:765
248
+ msgid "Size of all Files:"
249
+ msgstr "Tamaño de todos los ficheros:"
250
+
251
+ #: app/backwpup_dojob.php:773
252
+ msgid "Create Backup Zip file..."
253
+ msgstr "Crear fichero ZIP con la copia de seguridad:"
254
+
255
+ #: app/backwpup_dojob.php:781
256
+ #: app/backwpup_dojob.php:805
257
+ msgid "Add File to ZIP file:"
258
+ msgstr "Añadir fichero al fichero ZIP:"
259
+
260
+ #: app/backwpup_dojob.php:785
261
+ msgid "Can not add File to ZIP file:"
262
+ msgstr "No se puede añadir un fichero al fichero ZIP:"
263
+
264
+ #: app/backwpup_dojob.php:789
265
+ #: app/backwpup_dojob.php:812
266
+ msgid "Backup Zip file create done!"
267
+ msgstr "Fichero ZIP de copia de seguridad creado."
268
+
269
+ #: app/backwpup_dojob.php:791
270
+ msgid "Can not create Backup ZIP file:"
271
+ msgstr "No se puede crear el fichero ZIP de copia de seguridad:"
272
+
273
+ #: app/backwpup_dojob.php:802
274
+ msgid "Create Backup Zip (PclZip) file..."
275
+ msgstr "Crear fichero ZIP (PclZip) de copia de seguridad..."
276
+
277
+ #: app/backwpup_dojob.php:810
278
+ msgid "Zip file create:"
279
+ msgstr "Crear fichero ZIP:"
280
+
281
+ #: app/backwpup_dojob.php:829
282
+ msgid "Can not create TAR Backup file"
283
+ msgstr "No se ha podido crear el fichero TAR de copia de seguridad"
284
+
285
+ #: app/backwpup_dojob.php:832
286
+ msgid "Create Backup Archive file..."
287
+ msgstr "Crear fichero de copia de seguridad..."
288
+
289
+ #: app/backwpup_dojob.php:839
290
+ msgid "Add File to Backup Archive:"
291
+ msgstr "Añadir fichero al fichero de copia de seguridad:"
292
+
293
+ #: app/backwpup_dojob.php:915
294
+ msgid "Backup Archive file create done!"
295
+ msgstr "Fichero de copia de seguridad creado."
296
+
297
+ #: app/backwpup_dojob.php:933
298
+ msgid "Connected by SSL-FTP to Server:"
299
+ msgstr "Conectado por SSL-FTP al servidor:"
300
+
301
+ #: app/backwpup_dojob.php:935
302
+ msgid "Can not connect by SSL-FTP to Server:"
303
+ msgstr "No se puede conectar por SSL-FTP al servidor:"
304
+
305
+ #: app/backwpup_dojob.php:939
306
+ msgid "PHP Function to connect with SSL-FTP to Server not exists!"
307
+ msgstr "La función de PHP para conectarse con el servidor por SSL-FTP no existe."
308
+
309
+ #: app/backwpup_dojob.php:945
310
+ msgid "Connected to FTP Server:"
311
+ msgstr "Conectado al servidor FTP:"
312
+
313
+ #: app/backwpup_dojob.php:947
314
+ msgid "Can not connect to FTP Server:"
315
+ msgstr "No se puede conectar por FTP al servidor:"
316
+
317
+ #: app/backwpup_dojob.php:954
318
+ #: app/backwpup_dojob.php:961
319
+ #: app/backwpup_dojob.php:973
320
+ #: app/backwpup_dojob.php:986
321
+ msgid "FTP Client command:"
322
+ msgstr "Comando del cliente FTP:"
323
+
324
+ #: app/backwpup_dojob.php:956
325
+ #: app/backwpup_dojob.php:959
326
+ #: app/backwpup_dojob.php:963
327
+ #: app/backwpup_dojob.php:976
328
+ #: app/backwpup_dojob.php:978
329
+ #: app/backwpup_dojob.php:981
330
+ #: app/backwpup_dojob.php:983
331
+ #: app/backwpup_dojob.php:989
332
+ #: app/backwpup_dojob.php:991
333
+ msgid "FTP Server reply:"
334
+ msgstr "Respuesta del servidor FTP:"
335
+
336
+ #: app/backwpup_dojob.php:976
337
+ msgid "Entering Passive Mode"
338
+ msgstr "Entrando en modo pasivo"
339
+
340
+ #: app/backwpup_dojob.php:978
341
+ msgid "Can not Entering Passive Mode"
342
+ msgstr "No se puede entrar en modo pasivo"
343
+
344
+ #: app/backwpup_dojob.php:981
345
+ msgid "Entering Normal Mode"
346
+ msgstr "Entrando en modo normal"
347
+
348
+ #: app/backwpup_dojob.php:983
349
+ msgid "Can not Entering Normal Mode"
350
+ msgstr "No se puede entrar en modo normal"
351
+
352
+ #: app/backwpup_dojob.php:991
353
+ msgid "Error getting SYSTYPE"
354
+ msgstr "Error al obtener SYSTYPE"
355
+
356
+ #: app/backwpup_dojob.php:999
357
+ msgid "FTP Folder on Server not exists!"
358
+ msgstr "El directorio FTP en el servidor no existe."
359
+
360
+ #: app/backwpup_dojob.php:1001
361
+ msgid "FTP Folder created!"
362
+ msgstr "Directorio FTP creado."
363
+
364
+ #: app/backwpup_dojob.php:1004
365
+ msgid "FTP Folder on Server can not created!"
366
+ msgstr "No se ha podido crear el directorio en el servidor FTP."
367
+
368
+ #: app/backwpup_dojob.php:1010
369
+ msgid "Backup File transferred to FTP Server:"
370
+ msgstr "Fichero de copia de seguridad transferido al servidor FTP:"
371
+
372
+ #: app/backwpup_dojob.php:1013
373
+ msgid "Can not transfer backup to FTP server."
374
+ msgstr "No se ha podido transferir el fichero de copia de seguridad al servidor FTP."
375
+
376
+ #: app/backwpup_dojob.php:1029
377
+ msgid "Can not delete file on FTP Server:"
378
+ msgstr "No se ha podido borrar el fichero en el servidor FTP:"
379
+
380
+ #: app/backwpup_dojob.php:1032
381
+ msgid "files deleted on FTP Server:"
382
+ msgstr "ficheros borrados en el servidor FTP:"
383
+
384
+ #: app/backwpup_dojob.php:1044
385
+ msgid "Prepare Sending backup file with mail..."
386
+ msgstr "Preparando en envío de fichero de copia de seguridad por email..."
387
+
388
+ #: app/backwpup_dojob.php:1064
389
+ msgid "Send mail with SMTP"
390
+ msgstr "Enviar email con SMTP"
391
+
392
+ #: app/backwpup_dojob.php:1068
393
+ msgid "Send mail with Sendmail"
394
+ msgstr "Enviar email con Sendmail"
395
+
396
+ #: app/backwpup_dojob.php:1071
397
+ msgid "Send mail with PHP mail"
398
+ msgstr "Enviar email con PHP mail"
399
+
400
+ #: app/backwpup_dojob.php:1075
401
+ msgid "Creating mail"
402
+ msgstr "Creando email"
403
+
404
+ #: app/backwpup_dojob.php:1079
405
+ msgid "BackWPup File from"
406
+ msgstr "Fichero BackWPup de"
407
+
408
+ #: app/backwpup_dojob.php:1087
409
+ msgid "Backup Archive too big for sending by mail"
410
+ msgstr "Fichero de copia de seguridad demasiado grande para enviar por email"
411
+
412
+ #: app/backwpup_dojob.php:1092
413
+ msgid "Adding Attachment to mail"
414
+ msgstr "Añadiendo un fichero adjunto al email"
415
+
416
+ #: app/backwpup_dojob.php:1096
417
+ msgid "Send mail...."
418
+ msgstr "Enviar email..."
419
+
420
+ #: app/backwpup_dojob.php:1098
421
+ msgid "Can not send mail:"
422
+ msgstr "No se puede enviar el email:"
423
+
424
+ #: app/backwpup_dojob.php:1100
425
+ msgid "Mail send!!!"
426
+ msgstr "Email enviado."
427
+
428
+ #: app/backwpup_dojob.php:1118
429
+ msgid "Connected to S3 Bucket:"
430
+ msgstr "Conectado al S3 Bucket:"
431
+
432
+ #: app/backwpup_dojob.php:1127
433
+ msgid "Backup File transferred to S3://"
434
+ msgstr "Fichero de copia de seguridad transferido a S3://"
435
+
436
+ #: app/backwpup_dojob.php:1130
437
+ msgid "Can not transfer backup to S3."
438
+ msgstr "No se puede transferir la copia de seguridad a S3."
439
+
440
+ #: app/backwpup_dojob.php:1149
441
+ msgid "Can not delete file on S3://"
442
+ msgstr "No se puede borrar el fichero en S3://"
443
+
444
+ #: app/backwpup_dojob.php:1152
445
+ msgid "files deleted on S3 Bucket!"
446
+ msgstr "ficheros borrados en S3 Bucket."
447
+
448
+ #: app/backwpup_dojob.php:1159
449
+ msgid "S3 Bucket not exists:"
450
+ msgstr "S3 Bucket no existe."
451
+
452
+ #: app/backwpup_dojob.php:1162
453
+ msgid "Amazon S3 API:"
454
+ msgstr "API de Amazon S3:"
455
+
456
+ #: app/backwpup_dojob.php:1173
457
+ msgid "Can not load curl extension is needed for Rackspase Cloud!"
458
+ msgstr "No se puede cargar la extensión curl, necesaria para Rackspace Cloud."
459
+
460
+ #: app/backwpup_dojob.php:1185
461
+ msgid "Connected to Rackspase ..."
462
+ msgstr "Conectado a Rackspace..."
463
+
464
+ #: app/backwpup_dojob.php:1201
465
+ #: app/backwpup_dojob.php:1251
466
+ msgid "Rackspase Cloud API:"
467
+ msgstr "API de Rackspace Cloud:"
468
+
469
+ #: app/backwpup_dojob.php:1207
470
+ msgid "Rackspase Cloud Container not exists:"
471
+ msgstr "Rackspace Cloud Container no existe:"
472
+
473
+ #: app/backwpup_dojob.php:1219
474
+ msgid "Backup File transferred to RSC://"
475
+ msgstr "Fichero de copia de seguridad transferido a RSC://"
476
+
477
+ #: app/backwpup_dojob.php:1222
478
+ msgid "Can not transfer backup to RSC."
479
+ msgstr "No se puede transferir la copia de seguridad a RSC."
480
+
481
+ #: app/backwpup_dojob.php:1244
482
+ msgid "Can not delete file on RSC://"
483
+ msgstr "No se puede borrar el fichero en RSC://"
484
+
485
+ #: app/backwpup_dojob.php:1247
486
+ msgid "files deleted on Racspase Cloud Container!"
487
+ msgstr "ficheros borrados en Rackspace Cloud Container."
488
+
489
+ #: app/backwpup_dojob.php:1261
490
+ msgid "Can not load curl extension is needed for Microsoft Azure!"
491
+ msgstr "No se puede cargar la extensión curl, necesaria para Microsoft Azure."
492
+
493
+ #: app/backwpup_dojob.php:1274
494
+ msgid "Microsoft Azure Container not exists:"
495
+ msgstr "Microsoft Azure Container no existe:"
496
+
497
+ #: app/backwpup_dojob.php:1277
498
+ msgid "Connected to Microsoft Azure Container:"
499
+ msgstr "Conectado a Microsoft Azure Container:"
500
+
501
+ #: app/backwpup_dojob.php:1287
502
+ msgid "Backup File transferred to azure://"
503
+ msgstr "Fichero de copia de seguridad transferido a azure://"
504
+
505
+ #: app/backwpup_dojob.php:1290
506
+ msgid "Can not transfer backup to Microsoft Azure."
507
+ msgstr "No se puede transferir la copia de seguridad a Microsoft Azure."
508
+
509
+ #: app/backwpup_dojob.php:1311
510
+ msgid "files deleted on Microsoft Azure Container!"
511
+ msgstr "ficheros borrados en Microsoft Azure Container."
512
+
513
+ #: app/backwpup_dojob.php:1316
514
+ msgid "Microsoft Azure API:"
515
+ msgstr "API de Microsoft Azure:"
516
+
517
+ #: app/backwpup_dojob.php:1342
518
+ msgid "old backup files deleted!!!"
519
+ msgstr "los ficheros de copia de seguridad antiguos han sido borrados."
520
+
521
+ #: app/backwpup_dojob.php:1352
522
+ msgid "Can not load curl extension is needed for Dropbox!"
523
+ msgstr "No se puede cargar la extensión curl, necesaria para DropBox."
524
+
525
+ #: app/backwpup_dojob.php:1366
526
+ msgid "Authed to DropBox API from "
527
+ msgstr "Autentificado con el API de DropBox desde"
528
+
529
+ #: app/backwpup_dojob.php:1368
530
+ msgid "Can not Auth with DropBox API:"
531
+ msgstr "No se puede autentificar con el API de DropBox:"
532
+
533
+ #: app/backwpup_dojob.php:1376
534
+ msgid "Backup File transferred to DropBox."
535
+ msgstr "Fichero de copia de seguridad transferido a DropBox."
536
+
537
+ #: app/backwpup_dojob.php:1378
538
+ msgid "Can not transfere Backup file to DropBox:"
539
+ msgstr "No se puede transferir la copia de seguridad a DropBox:"
540
+
541
+ #: app/backwpup_dojob.php:1399
542
+ msgid "files deleted on DropBox Folder!"
543
+ msgstr "ficheros borrados en el directorio de DropBox."
544
+
545
+ #: app/backwpup_dojob.php:1403
546
+ msgid "DropBox API:"
547
+ msgstr "API de DropBox:"
548
+
549
+ #: app/backwpup_dojob.php:1505
550
+ msgid "Jobname:"
551
+ msgstr "Nombre de la tarea:"
552
+
553
+ #: app/backwpup_dojob.php:1506
554
+ msgid "Jobtype:"
555
+ msgstr "Tipo de la tarea:"
556
+
557
+ #: app/backwpup_dojob.php:1508
558
+ msgid "Errors:"
559
+ msgstr "Errores:"
560
+
561
+ #: app/backwpup_dojob.php:1510
562
+ msgid "Warnings:"
563
+ msgstr "Avisos:"
564
+
565
+ #: app/backwpup_dojob.php:1515
566
+ msgid "BackWPup Log from"
567
+ msgstr "Registro de BackWPup de"
568
+
569
+ #: app/list-tables.php:22
570
+ #: app/list-tables.php:198
571
+ #: app/list-tables.php:375
572
+ msgid "No rights"
573
+ msgstr "No tienes permisos"
574
+
575
+ #: app/list-tables.php:41
576
+ msgid "No Jobs."
577
+ msgstr "No hay tareas."
578
+
579
+ #: app/list-tables.php:46
580
+ #: app/list-tables.php:107
581
+ msgid "Export"
582
+ msgstr "Exportar"
583
+
584
+ #: app/list-tables.php:47
585
+ #: app/list-tables.php:108
586
+ #: app/list-tables.php:254
587
+ #: app/list-tables.php:317
588
+ #: app/list-tables.php:417
589
+ #: app/list-tables.php:483
590
+ #: app/options-edit-job.php:45
591
+ msgid "Delete"
592
+ msgstr "Borrar"
593
+
594
+ #: app/list-tables.php:55
595
+ msgid "ID"
596
+ msgstr "ID"
597
+
598
+ #: app/list-tables.php:56
599
+ msgid "Job Name"
600
+ msgstr "Nombre de la tarea"
601
+
602
+ #: app/list-tables.php:57
603
+ #: app/list-tables.php:263
604
+ msgid "Type"
605
+ msgstr "Tipo"
606
+
607
+ #: app/list-tables.php:58
608
+ msgid "Information"
609
+ msgstr "Información"
610
+
611
+ #: app/list-tables.php:59
612
+ msgid "Next Run"
613
+ msgstr "Próxima ejecución"
614
+
615
+ #: app/list-tables.php:60
616
+ msgid "Last Run"
617
+ msgstr "Última ejecución"
618
+
619
+ #: app/list-tables.php:102
620
+ msgid "Edit:"
621
+ msgstr "Editar:"
622
+
623
+ #: app/list-tables.php:105
624
+ msgid "Edit"
625
+ msgstr "Editar"
626
+
627
+ #: app/list-tables.php:106
628
+ msgid "Copy"
629
+ msgstr "Copiar"
630
+
631
+ #: app/list-tables.php:108
632
+ #: app/options-edit-job.php:45
633
+ msgid ""
634
+ "You are about to delete this Job. \n"
635
+ " 'Cancel' to stop, 'OK' to delete."
636
+ msgstr ""
637
+ "Estás a punto de borrar esta tarea.\n"
638
+ " 'Cancelar' para parar, 'OK' para borrar."
639
+
640
+ #: app/list-tables.php:109
641
+ msgid "Run Now"
642
+ msgstr "Ejecutar ahora"
643
+
644
+ #: app/list-tables.php:111
645
+ msgid "Clear"
646
+ msgstr "Limpiar"
647
+
648
+ #: app/list-tables.php:133
649
+ msgid "Files Size:"
650
+ msgstr "Tamaño de los ficheros:"
651
+
652
+ #: app/list-tables.php:135
653
+ msgid "Files count:"
654
+ msgstr "Número de ficheros:"
655
+
656
+ #: app/list-tables.php:140
657
+ msgid "DB Size: "
658
+ msgstr "Tamaño de la base de datos: "
659
+
660
+ #: app/list-tables.php:142
661
+ msgid "DB Tables:"
662
+ msgstr "Tablas de la base de datos:"
663
+
664
+ #: app/list-tables.php:143
665
+ msgid "DB Rows:"
666
+ msgstr "Registros de la base de datos:"
667
+
668
+ #: app/list-tables.php:152
669
+ #: app/php-functions.php:419
670
+ msgid "Running since:"
671
+ msgstr "Funcionando desde:"
672
+
673
+ #: app/list-tables.php:152
674
+ #: app/list-tables.php:168
675
+ #: app/list-tables.php:353
676
+ #: app/php-functions.php:419
677
+ msgid "sec."
678
+ msgstr "seg."
679
+
680
+ #: app/list-tables.php:156
681
+ msgid "Inactive"
682
+ msgstr "Inactivo"
683
+
684
+ #: app/list-tables.php:159
685
+ msgid "<a href=\"http://wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a>:"
686
+ msgstr "<a href=\"http://wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a>:"
687
+
688
+ #: app/list-tables.php:168
689
+ msgid "Runtime:"
690
+ msgstr "Tiempo de ejecución:"
691
+
692
+ #: app/list-tables.php:170
693
+ msgid "None"
694
+ msgstr "Nunca"
695
+
696
+ #: app/list-tables.php:173
697
+ msgid "Download last Backup"
698
+ msgstr "Descargar la última copia de seguridad"
699
+
700
+ #: app/list-tables.php:173
701
+ #: app/list-tables.php:318
702
+ #: app/list-tables.php:484
703
+ msgid "Download"
704
+ msgstr "Descargar"
705
+
706
+ #: app/list-tables.php:175
707
+ msgid "View last Log"
708
+ msgstr "Ver el último registro"
709
+
710
+ #: app/list-tables.php:175
711
+ msgid "Log"
712
+ msgstr "Registro"
713
+
714
+ #: app/list-tables.php:249
715
+ msgid "No Logs."
716
+ msgstr "No hay registros."
717
+
718
+ #: app/list-tables.php:262
719
+ msgid "Job"
720
+ msgstr "Tarea"
721
+
722
+ #: app/list-tables.php:264
723
+ msgid "Backup/Log Date/Time"
724
+ msgstr "Fecha y hora del registro/Nombre de la copia de seguridad"
725
+
726
+ #: app/list-tables.php:265
727
+ msgid "Status"
728
+ msgstr "Estado"
729
+
730
+ #: app/list-tables.php:266
731
+ #: app/list-tables.php:426
732
+ msgid "Size"
733
+ msgstr "Tamaño"
734
+
735
+ #: app/list-tables.php:267
736
+ msgid "Runtime"
737
+ msgstr "Tiempo de ejecución"
738
+
739
+ #: app/list-tables.php:314
740
+ msgid "View log"
741
+ msgstr "Ver registro"
742
+
743
+ #: app/list-tables.php:316
744
+ msgid "View"
745
+ msgstr "Ver"
746
+
747
+ #: app/list-tables.php:334
748
+ #: app/php-functions.php:398
749
+ msgid "ERROR(S)"
750
+ msgstr "ERROR(ES)"
751
+
752
+ #: app/list-tables.php:336
753
+ #: app/php-functions.php:400
754
+ msgid "WARNING(S)"
755
+ msgstr "AVISO(S)"
756
+
757
+ #: app/list-tables.php:338
758
+ #: app/php-functions.php:402
759
+ msgid "OK"
760
+ msgstr "OK"
761
+
762
+ #: app/list-tables.php:347
763
+ msgid "only Log"
764
+ msgstr "sólo registro"
765
+
766
+ #: app/list-tables.php:411
767
+ msgid "No Backups."
768
+ msgstr "No hay copias de seguridad."
769
+
770
+ #: app/list-tables.php:425
771
+ msgid "Backupfile"
772
+ msgstr "Fichero de copia de seguridad"
773
+
774
+ #: app/list-tables.php:483
775
+ msgid ""
776
+ "You are about to delete this Backup Archive. \n"
777
+ " 'Cancel' to stop, 'OK' to delete."
778
+ msgstr ""
779
+ "Estás a punto de borrar este fichero de copia de seguridad. \n"
780
+ " 'Cancelar' para parar, 'OK' para borrar."
781
+
782
+ #: app/list-tables.php:501
783
+ msgid "?"
784
+ msgstr "?"
785
+
786
+ #: app/options-edit-job.php:12
787
+ msgid "BackWPup Job Settings"
788
+ msgstr "Configuración de tareas de BackWPup"
789
+
790
+ #: app/options-edit-job.php:33
791
+ msgid "Job Type"
792
+ msgstr "Tipo de tarea"
793
+
794
+ #: app/options-edit-job.php:48
795
+ #: app/options-settings.php:22
796
+ #: app/options-settings.php:84
797
+ #: app/compatibility/class-wp-list-table.php:960
798
+ msgid "Save Changes"
799
+ msgstr "Guardar cambios"
800
+
801
+ #: app/options-edit-job.php:55
802
+ msgid "Job Schedule"
803
+ msgstr "Programación de tareas"
804
+
805
+ #: app/options-edit-job.php:57
806
+ msgid "Activate scheduling"
807
+ msgstr "Activar programación"
808
+
809
+ #: app/options-edit-job.php:60
810
+ msgid "Minutes: "
811
+ msgstr "Minutos:"
812
+
813
+ #: app/options-edit-job.php:68
814
+ #: app/options-edit-job.php:85
815
+ #: app/options-edit-job.php:102
816
+ #: app/options-edit-job.php:120
817
+ #: app/options-edit-job.php:144
818
+ msgid "Any (*)"
819
+ msgstr "Todos (*)"
820
+
821
+ #: app/options-edit-job.php:77
822
+ msgid "Hours:"
823
+ msgstr "Horas:"
824
+
825
+ #: app/options-edit-job.php:94
826
+ msgid "Days:"
827
+ msgstr "Días:"
828
+
829
+ #: app/options-edit-job.php:112
830
+ msgid "Months:"
831
+ msgstr "Meses:"
832
+
833
+ #: app/options-edit-job.php:121
834
+ msgid "January"
835
+ msgstr "Enero"
836
+
837
+ #: app/options-edit-job.php:122
838
+ msgid "February"
839
+ msgstr "Febrero"
840
+
841
+ #: app/options-edit-job.php:123
842
+ msgid "March"
843
+ msgstr "Marzo"
844
+
845
+ #: app/options-edit-job.php:124
846
+ msgid "April"
847
+ msgstr "Abril"
848
+
849
+ #: app/options-edit-job.php:125
850
+ msgid "May"
851
+ msgstr "Mayo"
852
+
853
+ #: app/options-edit-job.php:126
854
+ msgid "June"
855
+ msgstr "Junio"
856
+
857
+ #: app/options-edit-job.php:127
858
+ msgid "July"
859
+ msgstr "Julio"
860
+
861
+ #: app/options-edit-job.php:128
862
+ msgid "Augest"
863
+ msgstr "Agosto"
864
+
865
+ #: app/options-edit-job.php:129
866
+ msgid "September"
867
+ msgstr "Septiembre"
868
+
869
+ #: app/options-edit-job.php:130
870
+ msgid "October"
871
+ msgstr "Octubre"
872
+
873
+ #: app/options-edit-job.php:131
874
+ msgid "November"
875
+ msgstr "Noviembre"
876
+
877
+ #: app/options-edit-job.php:132
878
+ msgid "December"
879
+ msgstr "Diciembre"
880
+
881
+ #: app/options-edit-job.php:136
882
+ msgid "Weekday:"
883
+ msgstr "Día de la semana:"
884
+
885
+ #: app/options-edit-job.php:145
886
+ msgid "Sunday"
887
+ msgstr "Domingo"
888
+
889
+ #: app/options-edit-job.php:146
890
+ msgid "Monday"
891
+ msgstr "Lunes"
892
+
893
+ #: app/options-edit-job.php:147
894
+ msgid "Tuesday"
895
+ msgstr "Martes"
896
+
897
+ #: app/options-edit-job.php:148
898
+ msgid "Wednesday"
899
+ msgstr "Miércoles"
900
+
901
+ #: app/options-edit-job.php:149
902
+ msgid "Thursday"
903
+ msgstr "Jueves"
904
+
905
+ #: app/options-edit-job.php:150
906
+ msgid "Friday"
907
+ msgstr "Viernes"
908
+
909
+ #: app/options-edit-job.php:151
910
+ msgid "Saturday"
911
+ msgstr "Sábado"
912
+
913
+ #: app/options-edit-job.php:156
914
+ msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a> job schedule:"
915
+ msgstr "Está funcionando como una tarea programada en el <a href=\"http://wikipedia.org/wiki/Cron\" target=\"_blank\">Cron</a>:"
916
+
917
+ #: app/options-edit-job.php:157
918
+ msgid "Next runtime:"
919
+ msgstr "Próxima ejecución:"
920
+
921
+ #: app/options-edit-job.php:163
922
+ msgid "Backup File"
923
+ msgstr "Fichero de copia de seguridad"
924
+
925
+ #: app/options-edit-job.php:165
926
+ msgid "File Prefix:"
927
+ msgstr "Prefijo del fichero:"
928
+
929
+ #: app/options-edit-job.php:167
930
+ msgid "File Formart:"
931
+ msgstr "Formato del fichero:"
932
+
933
+ #: app/options-edit-job.php:170
934
+ #: app/options-edit-job.php:172
935
+ msgid "Zip"
936
+ msgstr "Zip"
937
+
938
+ #: app/options-edit-job.php:173
939
+ msgid "Tar"
940
+ msgstr "Tar"
941
+
942
+ #: app/options-edit-job.php:175
943
+ #: app/options-edit-job.php:177
944
+ msgid "Tar GZip"
945
+ msgstr "Tar GZip"
946
+
947
+ #: app/options-edit-job.php:179
948
+ #: app/options-edit-job.php:181
949
+ msgid "Tar BZip2"
950
+ msgstr "Tar BZip2"
951
+
952
+ #: app/options-edit-job.php:182
953
+ #: app/options-edit-job.php:318
954
+ #: app/options-edit-job.php:322
955
+ msgid "Example:"
956
+ msgstr "Ejemplo:"
957
+
958
+ #: app/options-edit-job.php:189
959
+ msgid "Send log"
960
+ msgstr "Enviar registro"
961
+
962
+ #: app/options-edit-job.php:191
963
+ #: app/options-edit-job.php:446
964
+ msgid "E-Mail-Adress:"
965
+ msgstr "Dirección de email:"
966
+
967
+ #: app/options-edit-job.php:193
968
+ msgid "Send only E-Mail on errors."
969
+ msgstr "Solo enviar emails cuando se produzcan errores"
970
+
971
+ #: app/options-edit-job.php:205
972
+ msgid "Enter Job name here"
973
+ msgstr "Escribe aquí el nombre de la tarea"
974
+
975
+ #: app/options-edit-job.php:211
976
+ msgid "Database Jobs"
977
+ msgstr "Tareas de la base de datos"
978
+
979
+ #: app/options-edit-job.php:214
980
+ msgid "Database Tabels to Exclude:"
981
+ msgstr "Tablas de la base de datos que se excluirán:"
982
+
983
+ #: app/options-edit-job.php:225
984
+ msgid "Use short INSERTs instat of full (with keys)"
985
+ msgstr "Use short INSERTs instat of full (with keys)"
986
+
987
+ #: app/options-edit-job.php:226
988
+ msgid "Set Blog Maintenance Mode on Database Operations"
989
+ msgstr "Poner el blog en modo de mantenimiento cuando se lleven a cabo operaciones en la base de datos"
990
+
991
+ #: app/options-edit-job.php:231
992
+ #: app/php-functions.php:316
993
+ msgid "File Backup"
994
+ msgstr "Hacer una copia de seguridad de los ficheros de la aplicación"
995
+
996
+ #: app/options-edit-job.php:233
997
+ msgid "Blog Folders to Backup:"
998
+ msgstr "Directorios incluidos en la copia de seguridad:"
999
+
1000
+ #: app/options-edit-job.php:236
1001
+ msgid "root"
1002
+ msgstr "Directorio raíz"
1003
+
1004
+ #: app/options-edit-job.php:239
1005
+ #: app/options-edit-job.php:255
1006
+ #: app/options-edit-job.php:271
1007
+ #: app/options-edit-job.php:287
1008
+ #: app/options-edit-job.php:303
1009
+ msgid "Exclude:"
1010
+ msgstr "Excluir:"
1011
+
1012
+ #: app/options-edit-job.php:252
1013
+ msgid "Content"
1014
+ msgstr "Directorio wp-content"
1015
+
1016
+ #: app/options-edit-job.php:268
1017
+ msgid "Plugins"
1018
+ msgstr "Directorio de plugins"
1019
+
1020
+ #: app/options-edit-job.php:284
1021
+ msgid "Themes"
1022
+ msgstr "Directorio de temas"
1023
+
1024
+ #: app/options-edit-job.php:300
1025
+ msgid "Blog Uploads"
1026
+ msgstr "Directorio de subida de archivos"
1027
+
1028
+ #: app/options-edit-job.php:317
1029
+ msgid "Include Folders to Backup:"
1030
+ msgstr "Incluir directorios en la copia de seguridad:"
1031
+
1032
+ #: app/options-edit-job.php:321
1033
+ msgid "Exclude Files/Folders from Backup:"
1034
+ msgstr "Excluir ficheros o directorios de la copia de seguridad"
1035
+
1036
+ #: app/options-edit-job.php:328
1037
+ msgid "Backup to Directory"
1038
+ msgstr "Guardar la copia de seguridad en el directorio"
1039
+
1040
+ #: app/options-edit-job.php:330
1041
+ msgid "Full Path to Folder for Backup Files:"
1042
+ msgstr "Ruta completa al directorio donde se guardarán los ficheros de la copia de seguridad:"
1043
+
1044
+ #: app/options-edit-job.php:332
1045
+ msgid "Max. Backup Files in Folder:"
1046
+ msgstr "Número máximo de ficheros de copia de seguridad que se guardarán en el directorio:"
1047
+
1048
+ #: app/options-edit-job.php:332
1049
+ #: app/options-edit-job.php:349
1050
+ #: app/options-edit-job.php:373
1051
+ #: app/options-edit-job.php:399
1052
+ #: app/options-edit-job.php:422
1053
+ #: app/options-edit-job.php:438
1054
+ #: app/options-settings.php:62
1055
+ msgid "(Oldest files will deleted first.)"
1056
+ msgstr "(los más antiguos se borrarán en primer lugar)"
1057
+
1058
+ #: app/options-edit-job.php:338
1059
+ msgid "Backup to FTP Server"
1060
+ msgstr "Copia de seguridad por FTP"
1061
+
1062
+ #: app/options-edit-job.php:340
1063
+ msgid "Hostname:"
1064
+ msgstr "Nombre del servidor:"
1065
+
1066
+ #: app/options-edit-job.php:342
1067
+ #: app/options-edit-job.php:412
1068
+ msgid "Username:"
1069
+ msgstr "Nombre de usuario:"
1070
+
1071
+ #: app/options-edit-job.php:344
1072
+ #: app/options-edit-job.php:434
1073
+ msgid "Password:"
1074
+ msgstr "Contraseña:"
1075
+
1076
+ #: app/options-edit-job.php:346
1077
+ msgid "Directory on Server:"
1078
+ msgstr "Directorio en el servidor:"
1079
+
1080
+ #: app/options-edit-job.php:349
1081
+ msgid "Max. Backup Files in FTP Folder:"
1082
+ msgstr "Máximo número de ficheros de copia de seguridad en el directorio FTP:"
1083
+
1084
+ #: app/options-edit-job.php:350
1085
+ msgid "Use SSL-FTP Connection."
1086
+ msgstr "Utilizar conexión SSL-FTP."
1087
+
1088
+ #: app/options-edit-job.php:351
1089
+ msgid "Use FTP Passiv mode."
1090
+ msgstr "Utilizar FTP pasivo."
1091
+
1092
+ #: app/options-edit-job.php:358
1093
+ msgid "Backup to Amazon S3"
1094
+ msgstr "Copia de seguridad en Amazon S3"
1095
+
1096
+ #: app/options-edit-job.php:358
1097
+ #: app/options-edit-job.php:382
1098
+ #: app/options-edit-job.php:407
1099
+ #: app/options-edit-job.php:430
1100
+ msgid "Create Account"
1101
+ msgstr "Crear cuenta"
1102
+
1103
+ #: app/options-edit-job.php:361
1104
+ #: app/options-edit-job.php:385
1105
+ #: app/options-edit-job.php:410
1106
+ msgid "curl Support required"
1107
+ msgstr "se requiere soporte para curl"
1108
+
1109
+ #: app/options-edit-job.php:363
1110
+ msgid "Access Key ID:"
1111
+ msgstr "ID de clave de acceso:"
1112
+
1113
+ #: app/options-edit-job.php:363
1114
+ #: app/options-edit-job.php:391
1115
+ #: app/options-edit-job.php:414
1116
+ msgid "Find it"
1117
+ msgstr "Encontrarlo"
1118
+
1119
+ #: app/options-edit-job.php:365
1120
+ msgid "Secret Access Key:"
1121
+ msgstr "Clave de acceso secreta:"
1122
+
1123
+ #: app/options-edit-job.php:367
1124
+ msgid "Bucket:"
1125
+ msgstr "Bucket:"
1126
+
1127
+ #: app/options-edit-job.php:370
1128
+ msgid "Create Bucket:"
1129
+ msgstr "Crear bucket:"
1130
+
1131
+ #: app/options-edit-job.php:370
1132
+ msgid "Bucket Region"
1133
+ msgstr "Región del bucket:"
1134
+
1135
+ #: app/options-edit-job.php:370
1136
+ msgid "US-East (Northern Virginia)"
1137
+ msgstr "Estados Unidos-Este (Northern Virginia)"
1138
+
1139
+ #: app/options-edit-job.php:370
1140
+ msgid "US-West (Northern California)"
1141
+ msgstr "Estados Unidos-Oeste (Northern California)"
1142
+
1143
+ #: app/options-edit-job.php:370
1144
+ msgid "EU (Ireland)"
1145
+ msgstr "Unión Europea (Irlanda)"
1146
+
1147
+ #: app/options-edit-job.php:370
1148
+ msgid "Asia Pacific (Singapore)"
1149
+ msgstr "Asia Pacífico (Singapur)"
1150
+
1151
+ #: app/options-edit-job.php:370
1152
+ msgid "Asia Pacific (Japan)"
1153
+ msgstr "Asia Pacífico (Japón)"
1154
+
1155
+ #: app/options-edit-job.php:371
1156
+ msgid "Directory in Bucket:"
1157
+ msgstr "Directorio en el bucket:"
1158
+
1159
+ #: app/options-edit-job.php:373
1160
+ msgid "Max. Backup Files in Bucket Folder:"
1161
+ msgstr "Máximo número de ficheros de copia de seguridad en el directorio del bucket:"
1162
+
1163
+ #: app/options-edit-job.php:374
1164
+ msgid "Save Backups with reduced redundancy!"
1165
+ msgstr "Guardar copias de seguridad con redundancia reducida."
1166
+
1167
+ #: app/options-edit-job.php:382
1168
+ msgid "Backup to Micosoft Azure (Blob)"
1169
+ msgstr "Copia de seguridad en Microsoft Azure (Blob)"
1170
+
1171
+ #: app/options-edit-job.php:387
1172
+ msgid "Host:"
1173
+ msgstr "Servidor:"
1174
+
1175
+ #: app/options-edit-job.php:388
1176
+ msgid "Normely: blob.core.windows.net"
1177
+ msgstr "Normalmente: blob.core.windows.net"
1178
+
1179
+ #: app/options-edit-job.php:389
1180
+ msgid "Account Name:"
1181
+ msgstr "Nombre de cuenta:"
1182
+
1183
+ #: app/options-edit-job.php:391
1184
+ msgid "Access Key:"
1185
+ msgstr "Clave de acceso:"
1186
+
1187
+ #: app/options-edit-job.php:393
1188
+ #: app/options-edit-job.php:416
1189
+ msgid "Container:"
1190
+ msgstr "Contenedor:"
1191
+
1192
+ #: app/options-edit-job.php:396
1193
+ #: app/options-edit-job.php:419
1194
+ msgid "Create Container:"
1195
+ msgstr "Crear contenedor:"
1196
+
1197
+ #: app/options-edit-job.php:397
1198
+ #: app/options-edit-job.php:420
1199
+ msgid "Directory in Container:"
1200
+ msgstr "Directorio en el contenedor:"
1201
+
1202
+ #: app/options-edit-job.php:399
1203
+ #: app/options-edit-job.php:422
1204
+ msgid "Max. Backup Files in Container Folder:"
1205
+ msgstr "Máximo número de ficheros de copia de seguridad en el directorio del contenedor:"
1206
+
1207
+ #: app/options-edit-job.php:407
1208
+ msgid "Backup to Rackspace Cloud"
1209
+ msgstr "Backup en Rackspace Cloud"
1210
+
1211
+ #: app/options-edit-job.php:414
1212
+ msgid "API Key:"
1213
+ msgstr "Clave API:"
1214
+
1215
+ #: app/options-edit-job.php:430
1216
+ msgid "Backup to Dropbox"
1217
+ msgstr "Copia de seguridad con Dropbox"
1218
+
1219
+ #: app/options-edit-job.php:432
1220
+ msgid "Email:"
1221
+ msgstr "Email:"
1222
+
1223
+ #: app/options-edit-job.php:436
1224
+ msgid "Directory:"
1225
+ msgstr "Directorio:"
1226
+
1227
+ #: app/options-edit-job.php:438
1228
+ msgid "Max. Backup Files in Dopbox Folder:"
1229
+ msgstr "Número máximo de ficheros de copia de seguridad en el directorio de DropBox:"
1230
+
1231
+ #: app/options-edit-job.php:444
1232
+ msgid "Backup to E-Mail"
1233
+ msgstr "Enviar la copia de seguridad por email"
1234
+
1235
+ #: app/options-edit-job.php:449
1236
+ msgid "Max. File Size for sending Backups with mail:"
1237
+ msgstr "Tamaño máximo del fichero para enviar copias de seguridad por email:"
1238
+
1239
+ #: app/options-runnow-iframe.php:13
1240
+ msgid "Do Job"
1241
+ msgstr "Ejecutar la tarea"
1242
+
1243
+ #: app/options-save.php:28
1244
+ msgid "Copy of"
1245
+ msgstr "Copia de"
1246
+
1247
+ #: app/options-save.php:63
1248
+ msgid "Backup Cleand by User!!!"
1249
+ msgstr "Copia de seguridad borrada por el usuario."
1250
+
1251
+ #: app/options-save.php:133
1252
+ #: app/options-save.php:261
1253
+ #: app/options-save.php:377
1254
+ msgid "File does not exist."
1255
+ msgstr "El fichero no exite"
1256
+
1257
+ #: app/options-save.php:413
1258
+ msgid "Settings saved"
1259
+ msgstr "Configuración guardada"
1260
+
1261
+ #: app/options-save.php:577
1262
+ msgid "Job '%1' changes saved."
1263
+ msgstr "Los cambios en la tarea '%1' se han guardado."
1264
+
1265
+ #: app/options-save.php:577
1266
+ msgid "Jobs overview."
1267
+ msgstr "Vista general de las tareas programadas."
1268
+
1269
+ #: app/options-settings.php:10
1270
+ msgid "BackWPup Settings"
1271
+ msgstr "Configuración de BackWPup"
1272
+
1273
+ #: app/options-settings.php:29
1274
+ msgid "Send Mail"
1275
+ msgstr "Enviar email"
1276
+
1277
+ #: app/options-settings.php:31
1278
+ msgid "Sender Email:"
1279
+ msgstr "Dirección del remitente del email:"
1280
+
1281
+ #: app/options-settings.php:32
1282
+ msgid "Sender Name:"
1283
+ msgstr "Nombre del remitente:"
1284
+
1285
+ #: app/options-settings.php:33
1286
+ msgid "Send mail method:"
1287
+ msgstr "Método de envío del email:"
1288
+
1289
+ #: app/options-settings.php:36
1290
+ msgid "PHP: mail()"
1291
+ msgstr "PHP: mail()"
1292
+
1293
+ #: app/options-settings.php:37
1294
+ msgid "Sendmail"
1295
+ msgstr "Sendmail"
1296
+
1297
+ #: app/options-settings.php:38
1298
+ msgid "SMTP"
1299
+ msgstr "SMTP"
1300
+
1301
+ #: app/options-settings.php:41
1302
+ msgid "Sendmail Path:"
1303
+ msgstr "Ruta del sendmail"
1304
+
1305
+ #: app/options-settings.php:43
1306
+ msgid "SMTP Hostname:"
1307
+ msgstr "Servidor SMTP:"
1308
+
1309
+ #: app/options-settings.php:44
1310
+ msgid "SMTP Secure Connection:"
1311
+ msgstr "Conexión segura SMTP:"
1312
+
1313
+ #: app/options-settings.php:46
1314
+ #: app/php-functions.php:410
1315
+ #: app/php-functions.php:427
1316
+ msgid "none"
1317
+ msgstr "ninguno"
1318
+
1319
+ #: app/options-settings.php:50
1320
+ msgid "SMTP Username:"
1321
+ msgstr "Nombre de usuario SMTP:"
1322
+
1323
+ #: app/options-settings.php:51
1324
+ msgid "SMTP Password:"
1325
+ msgstr "Contraseña SMTP:"
1326
+
1327
+ #: app/options-settings.php:57
1328
+ #: app/php-functions.php:191
1329
+ msgid "Logs"
1330
+ msgstr "Registros"
1331
+
1332
+ #: app/options-settings.php:59
1333
+ msgid "Log file Folder:"
1334
+ msgstr "Directorio para los ficheros de registro:"
1335
+
1336
+ #: app/options-settings.php:61
1337
+ msgid "Max. Log Files in Folder:"
1338
+ msgstr "Máximo número de ficheros en el directorio de registro:"
1339
+
1340
+ #: app/options-settings.php:63
1341
+ msgid "Gzip Log files!"
1342
+ msgstr "Comprimir los ficheros de registro con Gzip."
1343
+
1344
+ #: app/options-settings.php:64
1345
+ msgid "Log deteiled File list."
1346
+ msgstr "Lista detallada de los ficheros de registro."
1347
+
1348
+ #: app/options-settings.php:69
1349
+ msgid "Disable WP-Cron"
1350
+ msgstr "Desactivar el cron de WordPress"
1351
+
1352
+ #: app/options-settings.php:71
1353
+ msgid "Use Cron job of Hoster and disable WP_Cron"
1354
+ msgstr "Utilizar el programador de tareas del servidor y desactivar el WP_Cron"
1355
+
1356
+ #: app/options-settings.php:72
1357
+ msgid "You must set up a cron job that calls:"
1358
+ msgstr "Debes establecer una tarea programada que llame a:"
1359
+
1360
+ #: app/options-settings.php:74
1361
+ msgid "or URL:"
1362
+ msgstr "o bien una URL:"
1363
+
1364
+ #: app/options-settings.php:79
1365
+ msgid "Temp Folder"
1366
+ msgstr "Directorio temporal"
1367
+
1368
+ #: app/options-tools.php:8
1369
+ msgid "BackWPup Tools"
1370
+ msgstr "Herramientas de BackWPup"
1371
+
1372
+ #: app/options-tools.php:29
1373
+ msgid "Database restore"
1374
+ msgstr "Restauración de la base de datos"
1375
+
1376
+ #: app/options-tools.php:32
1377
+ #: app/options-tools.php:50
1378
+ msgid "Restore"
1379
+ msgstr "Restaurar"
1380
+
1381
+ #: app/options-tools.php:47
1382
+ msgid "SQL File to restore:"
1383
+ msgstr "Fichero SQL para restaurar:"
1384
+
1385
+ #: app/options-tools.php:53
1386
+ msgid "Copy SQL file to Blog root folder to use restore."
1387
+ msgstr "Para llevar a cabo la restauración, copia el fichero SQL al directorio raíz del blog."
1388
+
1389
+ #: app/options-tools.php:61
1390
+ msgid "Import Jobs settings"
1391
+ msgstr "Importar tareas programadas"
1392
+
1393
+ #: app/options-tools.php:63
1394
+ msgid "Select File to import:"
1395
+ msgstr "Selecciona el fichero para importar:"
1396
+
1397
+ #: app/options-tools.php:64
1398
+ #: app/options-tools.php:66
1399
+ msgid "Upload"
1400
+ msgstr "Subir"
1401
+
1402
+ #: app/options-tools.php:67
1403
+ msgid "Select Jobs to Import:"
1404
+ msgstr "Selecciona las tareas que se importarán:"
1405
+
1406
+ #: app/options-tools.php:71
1407
+ msgid "Import Type"
1408
+ msgstr "Importar tipo"
1409
+
1410
+ #: app/options-tools.php:71
1411
+ msgid "No Import"
1412
+ msgstr "No importar"
1413
+
1414
+ #: app/options-tools.php:73
1415
+ msgid "Overwrite"
1416
+ msgstr "Sobrescribir"
1417
+
1418
+ #: app/options-tools.php:73
1419
+ msgid "Append"
1420
+ msgstr "Añadir"
1421
+
1422
+ #: app/options-tools.php:75
1423
+ #: app/options-tools.php:79
1424
+ #: app/options-tools.php:81
1425
+ msgid "Import"
1426
+ msgstr "Importar"
1427
+
1428
+ #: app/options-tools.php:117
1429
+ msgid "Jobs imported!"
1430
+ msgstr "Las tareas han sido importadas"
1431
+
1432
+ #: app/php-functions.php:8
1433
+ #: app/php-functions.php:82
1434
+ #: app/php-functions.php:264
1435
+ msgid "BackWPup"
1436
+ msgstr "BackWPup"
1437
+
1438
+ #: app/php-functions.php:26
1439
+ msgid "BackWPup Logs"
1440
+ msgstr "Registros de BackWPup"
1441
+
1442
+ #: app/php-functions.php:45
1443
+ msgid "BackWPup Manage Backups"
1444
+ msgstr "Gestionar copias de seguridad de BackWPup"
1445
+
1446
+ #: app/php-functions.php:61
1447
+ msgid "BackWPup Job Running"
1448
+ msgstr "Tarea de BackWPup en ejecución"
1449
+
1450
+ #: app/php-functions.php:64
1451
+ msgid "Running Job"
1452
+ msgstr "Tarea en ejecución"
1453
+
1454
+ #: app/php-functions.php:72
1455
+ msgid "BackWPup View Logs"
1456
+ msgstr "Ver registros de BackWPup"
1457
+
1458
+ #: app/php-functions.php:75
1459
+ #: app/php-functions.php:390
1460
+ msgid "View Log"
1461
+ msgstr "Ver registro"
1462
+
1463
+ #: app/php-functions.php:82
1464
+ msgid "Add New"
1465
+ msgstr "Añadir nuevo"
1466
+
1467
+ #: app/php-functions.php:105
1468
+ #: app/php-functions.php:256
1469
+ msgid "Support"
1470
+ msgstr "Suporte"
1471
+
1472
+ #: app/php-functions.php:106
1473
+ #: app/php-functions.php:255
1474
+ msgid "FAQ"
1475
+ msgstr "Preguntas más frecuentes (FAQ)"
1476
+
1477
+ #: app/php-functions.php:107
1478
+ msgid "Plugin Homepage"
1479
+ msgstr "Página del plugin"
1480
+
1481
+ #: app/php-functions.php:108
1482
+ msgid "Plugin Home on WordPress.org"
1483
+ msgstr "Página del plugin en WordPress.org"
1484
+
1485
+ #: app/php-functions.php:109
1486
+ #: app/php-functions.php:257
1487
+ msgid "Donate"
1488
+ msgstr "Hacer una donación"
1489
+
1490
+ #: app/php-functions.php:116
1491
+ msgid "Version:"
1492
+ msgstr "Versión:"
1493
+
1494
+ #: app/php-functions.php:117
1495
+ msgid "Author:"
1496
+ msgstr "Autor"
1497
+
1498
+ #: app/php-functions.php:190
1499
+ msgid "Jobs"
1500
+ msgstr "Tareas"
1501
+
1502
+ #: app/php-functions.php:192
1503
+ msgid "Backups"
1504
+ msgstr "Copias de seguridad"
1505
+
1506
+ #: app/php-functions.php:193
1507
+ msgid "Tools"
1508
+ msgstr "Herramientas"
1509
+
1510
+ #: app/php-functions.php:194
1511
+ #: app/php-functions.php:245
1512
+ msgid "Settings"
1513
+ msgstr "Configuración"
1514
+
1515
+ #: app/php-functions.php:245
1516
+ msgid "Go to Settings Page"
1517
+ msgstr "Ir a la página de configuración"
1518
+
1519
+ #: app/php-functions.php:310
1520
+ msgid "WP XML Export"
1521
+ msgstr "Generar un fichero WP XML de exportación"
1522
+
1523
+ #: app/php-functions.php:313
1524
+ msgid "Database Backup"
1525
+ msgstr "Hacer una copia de seguridad de la base de datos"
1526
+
1527
+ #: app/php-functions.php:319
1528
+ msgid "Optimize Database Tables"
1529
+ msgstr "Optimizar las tablas de la base de datos"
1530
+
1531
+ #: app/php-functions.php:322
1532
+ msgid "Check Database Tables"
1533
+ msgstr "Verificar las tablas de la base de datos"
1534
+
1535
+ #: app/php-functions.php:374
1536
+ msgid "Logs:"
1537
+ msgstr "Registros:"
1538
+
1539
+ #: app/php-functions.php:413
1540
+ msgid "Scheduled Jobs:"
1541
+ msgstr "Tareas programadas:"
1542
+
1543
+ #: app/php-functions.php:416
1544
+ msgid "Edit Job"
1545
+ msgstr "Editar tarea"
1546
+
1547
+ #: app/php-functions.php:706
1548
+ msgid "- WordPress 2.8 or heiger needed!"
1549
+ msgstr "- Se necesita WordPress 2.8 o superior."
1550
+
1551
+ #: app/php-functions.php:710
1552
+ msgid "- PHP 5.2.0 or higher needed!"
1553
+ msgstr "- Se necesita PHP 5.2.0 o superior."
1554
+
1555
+ #: app/php-functions.php:714
1556
+ msgid "- Logs Folder not exists (Try too create it on first Job run):"
1557
+ msgstr "- El directorio de registro no existe (el plugin intentará crearlo la primera vez que se ejecute la tarea programada):"
1558
+
1559
+ #: app/php-functions.php:717
1560
+ msgid "- Logs Folder not writeable:"
1561
+ msgstr "- El servidor no puede escribir en el directorio donde se guardan los registros:"
1562
+
1563
+ #: app/php-functions.php:720
1564
+ msgid "- Temp Folder not exists (Try too create it on first Job run):"
1565
+ msgstr "- El directorio temporal no existe (el plugin intentará crearlo la primera vez que se ejecute la tarea programada):"
1566
+
1567
+ #: app/php-functions.php:723
1568
+ msgid "- Temp Folder not writeable:"
1569
+ msgstr "- El servidor no puede escribir en el directorio temporal:"
1570
+
1571
+ #: app/php-functions.php:728
1572
+ msgid "- Please Check Scheduling time for Job:"
1573
+ msgstr "- Por favor, verifica la programación de la tarea:"
1574
+
1575
+ #: app/php-functions.php:731
1576
+ msgid "- WP-Cron don't working please check it!"
1577
+ msgstr "- El WP-Cron no funciona; por favor, compruébalo."
1578
+
1579
+ #: app/php5-functions.php:22
1580
+ msgid "New"
1581
+ msgstr "Nuevo"
1582
+
1583
+ #: app/php5-functions.php:500
1584
+ msgid "Missing Access Key ID!"
1585
+ msgstr "Falta la ID de la clave de acceso."
1586
+
1587
+ #: app/php5-functions.php:507
1588
+ msgid "Missing Secret Access Key!"
1589
+ msgstr "Falta la clave secreta de acceso."
1590
+
1591
+ #: app/php5-functions.php:524
1592
+ msgid "No Buckets found!"
1593
+ msgstr "No se ha encontrado ningún bucket."
1594
+
1595
+ #: app/php5-functions.php:556
1596
+ msgid "Missing Username!"
1597
+ msgstr "Falta el nombre de usuario."
1598
+
1599
+ #: app/php5-functions.php:563
1600
+ msgid "Missing API Key!"
1601
+ msgstr "Falta la clave API."
1602
+
1603
+ #: app/php5-functions.php:584
1604
+ msgid "No Containerss found!"
1605
+ msgstr "No se ha encontrado ningún contenedor."
1606
+
1607
+ #: app/php5-functions.php:618
1608
+ msgid "Missing Hostname!"
1609
+ msgstr "Falta el nombre del servidor."
1610
+
1611
+ #: app/php5-functions.php:625
1612
+ msgid "Missing Account Name!"
1613
+ msgstr "Falta el nombre de usuario."
1614
+
1615
+ #: app/php5-functions.php:632
1616
+ msgid "Missing Access Key!"
1617
+ msgstr "Falta la clave de acceso."
1618
+
1619
+ #: app/php5-functions.php:649
1620
+ msgid "No Container found!"
1621
+ msgstr "No se ha encontrado el contenedor."
1622
+
1623
+ #: app/compatibility/class-wp-list-table.php:181
1624
+ msgid "No items found."
1625
+ msgstr "No se ha encontrado ningún elemento."
1626
+
1627
+ #: app/compatibility/class-wp-list-table.php:284
1628
+ msgid "Bulk Actions"
1629
+ msgstr "Acciones en masa"
1630
+
1631
+ #: app/compatibility/class-wp-list-table.php:289
1632
+ msgid "Apply"
1633
+ msgstr "Aplicar"
1634
+
1635
+ #: app/compatibility/class-wp-list-table.php:363
1636
+ msgid "Show all dates"
1637
+ msgstr "Mostrar todas las fechas"
1638
+
1639
+ #: app/compatibility/class-wp-list-table.php:391
1640
+ msgid "List View"
1641
+ msgstr "Vista de lista"
1642
+
1643
+ #: app/compatibility/class-wp-list-table.php:392
1644
+ msgid "Excerpt View"
1645
+ msgstr "Vista de resumen"
1646
+
1647
+ #: app/compatibility/class-wp-list-table.php:418
1648
+ #, php-format
1649
+ msgid "%s pending"
1650
+ msgstr "%s pendiente"
1651
+
1652
+ #: app/compatibility/class-wp-list-table.php:474
1653
+ #: app/compatibility/class-wp-list-table.php:870
1654
+ #, php-format
1655
+ msgid "1 item"
1656
+ msgid_plural "%s items"
1657
+ msgstr[0] "1 elemento"
1658
+ msgstr[1] "%s elementos"
1659
+
1660
+ #: app/compatibility/class-wp-list-table.php:515
1661
+ #, php-format
1662
+ msgid "%1$s of %2$s"
1663
+ msgstr "%1$s de %2$s"
1664
+
1665
+ #: app/tools/db_restore.php:34
1666
+ #: app/tools/db_restore.php:53
1667
+ #: app/tools/db_restore.php:68
1668
+ #: app/tools/db_restore.php:79
1669
+ #: app/tools/db_restore.php:82
1670
+ #: app/tools/db_restore.php:85
1671
+ #: app/tools/db_restore.php:90
1672
+ msgid "ERROR:"
1673
+ msgstr "ERROR:"
1674
+
1675
+ #: app/tools/db_restore.php:34
1676
+ #, php-format
1677
+ msgid "Pleace set <i>$table_prefix = '%1$s';</i> in wp-config.php"
1678
+ msgstr "Por favor, establece la variable <i>$table_prefix = '%1$s';</i> en wp-config.php"
1679
+
1680
+ #: app/tools/db_restore.php:53
1681
+ #, php-format
1682
+ msgid "Pleace set <i>define('DB_iso-8859-1', '%1$s');</i> in wp-config.php"
1683
+ msgstr "Por favor, establece la variable <i>define('DB_iso-8859-1', '%1$s');</i> en wp-config.php"
1684
+
1685
+ #: app/tools/db_restore.php:74
1686
+ #, php-format
1687
+ msgid "%1$s Database Querys done."
1688
+ msgstr "Se han realizado %1$s consultas a la base de datos."
1689
+
1690
+ #: app/tools/db_restore.php:75
1691
+ msgid "Make changes for Blogurl and ABSPATH if needed."
1692
+ msgstr "Realiza los cambios en Blogurl y ABSPATH si son necesarios."
1693
+
1694
+ #: app/tools/db_restore.php:92
1695
+ msgid "Restore Done. Please delete the SQL file after Restore."
1696
+ msgstr "Restauración realizada. Por favor, borra el fichero SQL después de restaurar."
1697
+
1698
+ #~ msgid "Connect to DropBox ..."
1699
+ #~ msgstr "Conectar a DropBox..."
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === BackWPup ===
2
- Contributors: danielhuesken, zlli
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&currency_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8
4
  Tags: backup, admin, file, Database, mysql, cron, ftp, S3, export, xml, Rackspase, cloud, azure, dropbox
5
  Requires at least: 2.8
6
  Tested up to: 3.1.0
7
- Stable tag: 1.6.0
8
 
9
  Backup and more of your WordPress Blog Database and Files
10
 
@@ -100,6 +100,17 @@ Destinations are:
100
  1. Job Page
101
 
102
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
103
  = 1.6.0 =
104
  * new dropbox class to use all functions (download, delete, list)
105
  * added usefull inks in job edit page
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, Rackspase, cloud, azure, dropbox
5
  Requires at least: 2.8
6
  Tested up to: 3.1.0
7
+ Stable tag: 1.6.1
8
 
9
  Backup and more of your WordPress Blog Database and Files
10
 
100
  1. Job Page
101
 
102
  == Changelog ==
103
+ = 1.6.1 =
104
+ * Now use web OAuth login for Dropbox! Best thaks to Tijs Verkoyen for his dropbox class.
105
+ * Only Dropbox OAuth tokens are saved!
106
+ * Check Dropbox Quota/Upload Filesize on Job run
107
+ * fixed bug in tar with file/folder names longer than 100 chars
108
+ * changed user capability back to '10' because working with WP lower than 3.0
109
+ * bug fixes for old WordPress versions
110
+ * English Text updates! Best thaks to Marcy Capron.
111
+ * improvements
112
+ * bug fixes
113
+
114
  = 1.6.0 =
115
  * new dropbox class to use all functions (download, delete, list)
116
  * added usefull inks in job edit page
uninstall.php CHANGED
@@ -5,4 +5,5 @@ if( !defined( 'ABSPATH') && !defined('WP_UNINSTALL_PLUGIN') )
5
  delete_option('backwpup');
6
  delete_option('backwpup_jobs');
7
  delete_option('backwpup_backups_chache');
 
8
  ?>
5
  delete_option('backwpup');
6
  delete_option('backwpup_jobs');
7
  delete_option('backwpup_backups_chache');
8
+ delete_option('backwpup_dropboxrequest');
9
  ?>