BackWPup – WordPress Backup Plugin - Version 2.0.1

Version Description

  • Zip file creation now faster agin but no stat output
  • serverl bug fixes
Download this release

Release Info

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

Code changes from version 2.0.0 to 2.0.1

backwpup-functions.php CHANGED
@@ -105,9 +105,9 @@ function backwpup_contextual_help($help='') {
105
 
106
  //On Plugin activate
107
  function backwpup_plugin_activate() {
108
- $jobs=get_option('backwpup_jobs');
109
- if (!empty($jobs) and is_array($jobs)) {
110
- foreach ($jobs as $jobid => $jobvalue) {
111
  //check jobvaules
112
  $jobs[$jobid]=backwpup_get_job_vars($jobid);
113
  }
@@ -132,10 +132,10 @@ function backwpup_plugin_activate() {
132
  if (!isset($cfg['mailuser'])) $cfg['mailuser']='';
133
  if (!isset($cfg['mailpass'])) $cfg['mailpass']='';
134
  if (!isset($cfg['showadminbar'])) $cfg['showadminbar']=true;
135
- if (!isset($cfg['jobstepretry']) or !is_int($cfg['jobstepretry']) or 99<=$cfg['jobstepretry']) $cfg['jobstepretry']=3;
136
- if (!isset($cfg['jobscriptretry']) or !is_int($cfg['jobscriptretry']) or 99<=$cfg['jobscriptretry']) $cfg['jobscriptretry']=5;
137
- if (!isset($cfg['jobscriptruntime']) or !is_int($cfg['jobscriptruntime']) or 100>$cfg['jobscriptruntime']) $cfg['jobscriptruntime']=30;
138
- if (!isset($cfg['jobscriptruntimelong']) or !is_int($cfg['jobscriptruntimelong']) or 1000>$cfg['jobscriptruntimelong']) $cfg['jobscriptruntimelong']=300;
139
  if (!isset($cfg['maxlogs']) or !is_int($cfg['maxlogs'])) $cfg['maxlogs']=50;
140
  if (!function_exists('gzopen') or !isset($cfg['gzlogs'])) $cfg['gzlogs']=false;
141
  if (!isset($cfg['dirlogs']) or empty($cfg['dirlogs']) or !is_dir($cfg['dirlogs'])) {
@@ -380,8 +380,12 @@ function backwpup_dashboard_logs_config() {
380
 
381
  //Dashboard widget for Jobs
382
  function backwpup_dashboard_activejobs() {
383
- $jobs=(array)get_option('backwpup_jobs');
384
- $runningfile['JOBID']='';
 
 
 
 
385
  $runningfile=backwpup_get_working_file();
386
  $tmp = Array();
387
  foreach($jobs as &$ma)
@@ -390,7 +394,7 @@ function backwpup_dashboard_activejobs() {
390
  $count=0;
391
  echo '<ul>';
392
  foreach ($jobs as $jobid => $jobvalue) {
393
- if ($runningfile['JOBID']==$jobvalue["jobid"]) {
394
  $runtime=time()-$jobvalue['starttime'];
395
  echo '<li><span style="font-weight:bold;">'.$jobvalue['jobid'].'. '.$jobvalue['name'].': </span>';
396
  printf('<span style="color:#e66f00;">'.__('working since %d sec.','backwpup').'</span>',$runtime);
@@ -400,7 +404,7 @@ function backwpup_dashboard_activejobs() {
400
  $count++;
401
  } elseif ($jobvalue['activated']) {
402
  echo '<li><span>'.date(get_option('date_format'),$jobvalue['cronnextrun']).' '.date(get_option('time_format'),$jobvalue['cronnextrun']).'</span>';
403
- echo ' <a href="'.wp_nonce_url(admin_url('admin.php').'?page=backwpupeditjob&jobid='.$jobid, 'edit-job').'" title="'.__('Edit Job','backwpup').'">'.$jobvalue['name'].'</a><br />';
404
  echo "</li>";
405
  $count++;
406
  }
105
 
106
  //On Plugin activate
107
  function backwpup_plugin_activate() {
108
+ $jobsids=array_keys(get_option('backwpup_jobs'));
109
+ if (!empty($jobsids)) {
110
+ foreach ($jobsids as $jobid) {
111
  //check jobvaules
112
  $jobs[$jobid]=backwpup_get_job_vars($jobid);
113
  }
132
  if (!isset($cfg['mailuser'])) $cfg['mailuser']='';
133
  if (!isset($cfg['mailpass'])) $cfg['mailpass']='';
134
  if (!isset($cfg['showadminbar'])) $cfg['showadminbar']=true;
135
+ if (!isset($cfg['jobstepretry']) or !is_int($cfg['jobstepretry']) or 100<$cfg['jobstepretry'] or empty($cfg['jobstepretry'])) $cfg['jobstepretry']=3;
136
+ if (!isset($cfg['jobscriptretry']) or !is_int($cfg['jobscriptretry']) or 100<$cfg['jobscriptretry'] or empty($cfg['jobscriptretry'])) $cfg['jobscriptretry']=5;
137
+ if (!isset($cfg['jobscriptruntime']) or !is_int($cfg['jobscriptruntime']) or 100<$cfg['jobscriptruntime'] or empty($cfg['jobscriptruntime'])) $cfg['jobscriptruntime']=30;
138
+ if (!isset($cfg['jobscriptruntimelong']) or !is_int($cfg['jobscriptruntimelong']) or 1000<$cfg['jobscriptruntimelong'] or empty($cfg['jobscriptruntimelong'])) $cfg['jobscriptruntimelong']=300;
139
  if (!isset($cfg['maxlogs']) or !is_int($cfg['maxlogs'])) $cfg['maxlogs']=50;
140
  if (!function_exists('gzopen') or !isset($cfg['gzlogs'])) $cfg['gzlogs']=false;
141
  if (!isset($cfg['dirlogs']) or empty($cfg['dirlogs']) or !is_dir($cfg['dirlogs'])) {
380
 
381
  //Dashboard widget for Jobs
382
  function backwpup_dashboard_activejobs() {
383
+ $jobsids=array_keys(get_option('backwpup_jobs'));
384
+ if (!empty($jobsids)) {
385
+ foreach ($jobsids as $jobid) {
386
+ $jobs[$jobid]=backwpup_get_job_vars($jobid);
387
+ }
388
+ }
389
  $runningfile=backwpup_get_working_file();
390
  $tmp = Array();
391
  foreach($jobs as &$ma)
394
  $count=0;
395
  echo '<ul>';
396
  foreach ($jobs as $jobid => $jobvalue) {
397
+ if (!empty($runningfile['JOBID']) and $runningfile['JOBID']==$jobvalue['jobid']) {
398
  $runtime=time()-$jobvalue['starttime'];
399
  echo '<li><span style="font-weight:bold;">'.$jobvalue['jobid'].'. '.$jobvalue['name'].': </span>';
400
  printf('<span style="color:#e66f00;">'.__('working since %d sec.','backwpup').'</span>',$runtime);
404
  $count++;
405
  } elseif ($jobvalue['activated']) {
406
  echo '<li><span>'.date(get_option('date_format'),$jobvalue['cronnextrun']).' '.date(get_option('time_format'),$jobvalue['cronnextrun']).'</span>';
407
+ echo ' <a href="'.wp_nonce_url(admin_url('admin.php').'?page=backwpupeditjob&jobid='.$jobvalue['jobid'], 'edit-job').'" title="'.__('Edit Job','backwpup').'">'.$jobvalue['name'].'</a><br />';
408
  echo "</li>";
409
  $count++;
410
  }
backwpup.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: BackWPup
4
  Plugin URI: http://backwpup.com
5
  Description: Wordpress Backup and more...
6
  Author: Daniel H&uuml;sken
7
- Version: 2.0.0
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
@@ -39,7 +39,7 @@ if (!defined('ABSPATH')) {
39
  define('BACKWPUP_PLUGIN_BASEDIR', dirname(plugin_basename(__FILE__)));
40
  define('BACKWPUP_PLUGIN_BASEURL',plugins_url('',__FILE__));
41
  //Set Plugin Version
42
- define('BACKWPUP_VERSION', '2.0.0');
43
  //Set Min Wordpress Version
44
  define('BACKWPUP_MIN_WORDPRESS_VERSION', '3.2');
45
  //Set User Capability
@@ -53,7 +53,7 @@ define('BACKWPUP_DROPBOX_APP_SECRET', 't5hlbxtz473hchy');
53
  //Set SugarSync Aplication Keys
54
  define('BACKWPUP_SUGARSYNC_ACCESSKEY', 'OTcwNjc5MTI5OTQxMzY1Njc5OA');
55
  define('BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY', 'NzNmNDMwMDBiNTkwNDY0YzhjY2JiN2E5YWVkMjFmYmI');
56
- //BAckWPup API url
57
  define('BACKWPUP_API_URL', 'http://api.backwpup.com');
58
  //load Text Domain
59
  load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_BASEDIR.'/lang');
4
  Plugin URI: http://backwpup.com
5
  Description: Wordpress Backup and more...
6
  Author: Daniel H&uuml;sken
7
+ Version: 2.0.1
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
39
  define('BACKWPUP_PLUGIN_BASEDIR', dirname(plugin_basename(__FILE__)));
40
  define('BACKWPUP_PLUGIN_BASEURL',plugins_url('',__FILE__));
41
  //Set Plugin Version
42
+ define('BACKWPUP_VERSION', '2.0.1');
43
  //Set Min Wordpress Version
44
  define('BACKWPUP_MIN_WORDPRESS_VERSION', '3.2');
45
  //Set User Capability
53
  //Set SugarSync Aplication Keys
54
  define('BACKWPUP_SUGARSYNC_ACCESSKEY', 'OTcwNjc5MTI5OTQxMzY1Njc5OA');
55
  define('BACKWPUP_SUGARSYNC_PRIVATEACCESSKEY', 'NzNmNDMwMDBiNTkwNDY0YzhjY2JiN2E5YWVkMjFmYmI');
56
+ //BackWPup API url
57
  define('BACKWPUP_API_URL', 'http://api.backwpup.com');
58
  //load Text Domain
59
  load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_BASEDIR.'/lang');
job/backup_create.php CHANGED
@@ -15,7 +15,7 @@ function backup_create() {
15
  if (strtolower($_SESSION['JOB']['fileformart'])==".zip") { //Zip files
16
  if (!class_exists('ZipArchive')) { //use php zip lib
17
  trigger_error($_SESSION['WORKING']['BACKUP_CREATE']['STEP_TRY'].'. '.__('Try to create backup zip file...','backwpup'),E_USER_NOTICE);
18
- $zip = new ZipArchive;
19
  if ($res=$zip->open($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile'],ZIPARCHIVE::CREATE) === TRUE) {
20
  for ($i=$_SESSION['WORKING']['STEPDONE'];$i<$_SESSION['WORKING']['STEPTODO'];$i++) {
21
  if (!$zip->addFile($_SESSION['WORKING']['FILELIST'][$i]['FILE'], $_SESSION['WORKING']['FILELIST'][$i]['OUTFILE']))
@@ -37,15 +37,20 @@ function backup_create() {
37
  if (is_array($_SESSION['WORKING']['FILELIST'][0])) {
38
  trigger_error($_SESSION['WORKING']['BACKUP_CREATE']['STEP_TRY'].'. '.__('Try to create backup zip (PclZip) file...','backwpup'),E_USER_NOTICE);
39
  $zipbackupfile = new PclZip($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile']);
40
- for ($i=$_SESSION['WORKING']['STEPDONE'];$i<$_SESSION['WORKING']['STEPTODO'];$i++) {
41
- need_free_memory(10485760); //10MB free memory for zip
42
- if (0==$zipbackupfile -> add($_SESSION['WORKING']['FILELIST'][$i]['FILE'],PCLZIP_OPT_REMOVE_PATH,str_replace($_SESSION['WORKING']['FILELIST'][$i]['OUTFILE'],'',$_SESSION['WORKING']['FILELIST'][$i]['FILE']),PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
43
- trigger_error(__('Can not add File to ZIP file:','backwpup').' '.$_SESSION['WORKING']['FILELIST'][$i]['OUTFILE'].':'.$zipbackupfile->errorInfo(true),E_USER_ERROR);
44
- }
45
- $_SESSION['WORKING']['STEPDONE']++;
 
 
 
 
 
46
  update_working_file();
 
47
  }
48
- trigger_error(__('Backup Zip file create done!','backwpup'),E_USER_NOTICE);
49
  }
50
  }
51
  } elseif (strtolower($_SESSION['JOB']['fileformart'])==".tar.gz" or strtolower($_SESSION['JOB']['fileformart'])==".tar.bz2" or strtolower($_SESSION['JOB']['fileformart'])==".tar") { //tar files
15
  if (strtolower($_SESSION['JOB']['fileformart'])==".zip") { //Zip files
16
  if (!class_exists('ZipArchive')) { //use php zip lib
17
  trigger_error($_SESSION['WORKING']['BACKUP_CREATE']['STEP_TRY'].'. '.__('Try to create backup zip file...','backwpup'),E_USER_NOTICE);
18
+ $zip = new ZipArchive();
19
  if ($res=$zip->open($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile'],ZIPARCHIVE::CREATE) === TRUE) {
20
  for ($i=$_SESSION['WORKING']['STEPDONE'];$i<$_SESSION['WORKING']['STEPTODO'];$i++) {
21
  if (!$zip->addFile($_SESSION['WORKING']['FILELIST'][$i]['FILE'], $_SESSION['WORKING']['FILELIST'][$i]['OUTFILE']))
37
  if (is_array($_SESSION['WORKING']['FILELIST'][0])) {
38
  trigger_error($_SESSION['WORKING']['BACKUP_CREATE']['STEP_TRY'].'. '.__('Try to create backup zip (PclZip) file...','backwpup'),E_USER_NOTICE);
39
  $zipbackupfile = new PclZip($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile']);
40
+ need_free_memory(10485760); //10MB free memory for zip
41
+ for ($i=0;$i<count($_SESSION['WORKING']['FILELIST']);$i++) {
42
+ $files[$i][79001]=$_SESSION['WORKING']['FILELIST'][$i]['FILE'];
43
+ $files[$i][79003]=$_SESSION['WORKING']['FILELIST'][$i]['OUTFILE'];
44
+ }
45
+ @set_time_limit($_SESSION['CFG']['jobscriptruntimelong']);
46
+ if (0==$zipbackupfile->create($files,PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
47
+ trigger_error(__('Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true),E_USER_ERROR);
48
+ } else {
49
+ trigger_error(__('Backup Zip file create done!','backwpup'),E_USER_NOTICE);
50
+ $_SESSION['WORKING']['STEPDONE']=count($_SESSION['WORKING']['FILELIST']);
51
  update_working_file();
52
+ unset($files);
53
  }
 
54
  }
55
  }
56
  } elseif (strtolower($_SESSION['JOB']['fileformart'])==".tar.gz" or strtolower($_SESSION['JOB']['fileformart'])==".tar.bz2" or strtolower($_SESSION['JOB']['fileformart'])==".tar") { //tar files
job/dest_dropbox.php CHANGED
@@ -13,7 +13,6 @@ function dest_dropbox() {
13
  $_SESSION['WORKING']['STEPTODO']=2+filesize($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile']);
14
  $_SESSION['WORKING']['STEPDONE']=0;
15
  trigger_error($_SESSION['WORKING']['DEST_DROPBOX']['STEP_TRY'].'. '.__('Try to sending backup file to DropBox...','backwpup'),E_USER_NOTICE);
16
- need_free_memory(filesize($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile'])*1.1);
17
  require_once(realpath(dirname(__FILE__).'/../libs/dropbox/dropbox.php'));
18
  try {
19
  $dropbox = new Dropbox($_SESSION['BACKWPUP']['DROPBOX_APP_KEY'], $_SESSION['BACKWPUP']['DROPBOX_APP_SECRET']);
13
  $_SESSION['WORKING']['STEPTODO']=2+filesize($_SESSION['JOB']['backupdir'].$_SESSION['STATIC']['backupfile']);
14
  $_SESSION['WORKING']['STEPDONE']=0;
15
  trigger_error($_SESSION['WORKING']['DEST_DROPBOX']['STEP_TRY'].'. '.__('Try to sending backup file to DropBox...','backwpup'),E_USER_NOTICE);
 
16
  require_once(realpath(dirname(__FILE__).'/../libs/dropbox/dropbox.php'));
17
  try {
18
  $dropbox = new Dropbox($_SESSION['BACKWPUP']['DROPBOX_APP_KEY'], $_SESSION['BACKWPUP']['DROPBOX_APP_SECRET']);
job/job_functions.php CHANGED
@@ -246,6 +246,11 @@ function mysql_update() {
246
  //function for PHP error handling
247
  function joberrorhandler() {
248
  $args = func_get_args(); // 0:errno, 1:errstr, 2:errfile, 3:errline
 
 
 
 
 
249
  $adderrorwarning=false;
250
 
251
  switch ($args[0]) {
246
  //function for PHP error handling
247
  function joberrorhandler() {
248
  $args = func_get_args(); // 0:errno, 1:errstr, 2:errfile, 3:errline
249
+
250
+ // if error has been supressed with an @
251
+ if (error_reporting()==0)
252
+ return;
253
+
254
  $adderrorwarning=false;
255
 
256
  switch ($args[0]) {
job/job_run.php CHANGED
@@ -83,6 +83,8 @@ foreach($_SESSION['WORKING']['STEPS'] as $step) {
83
  if ($_SESSION['JOB']['activated'])
84
  trigger_error(__('[INFO]: BackWPup cron:','backwpup').' '.$_SESSION['JOB']['cron'].'; '.date('D, j M Y H:i',$_SESSION['JOB']['cronnextrun']),E_USER_NOTICE);
85
  trigger_error(__('[INFO]: PHP ver.:','backwpup').' '.phpversion().'; '.php_sapi_name().'; '.PHP_OS,E_USER_NOTICE);
 
 
86
  trigger_error(__('[INFO]: MySQL ver.:','backwpup').' '.mysql_result(mysql_query("SELECT VERSION() AS version"),0),E_USER_NOTICE);
87
  $curlversion=curl_version();
88
  trigger_error(__('[INFO]: curl ver.:','backwpup').' '.$curlversion['version'].'; '.$curlversion['ssl_version'],E_USER_NOTICE);
83
  if ($_SESSION['JOB']['activated'])
84
  trigger_error(__('[INFO]: BackWPup cron:','backwpup').' '.$_SESSION['JOB']['cron'].'; '.date('D, j M Y H:i',$_SESSION['JOB']['cronnextrun']),E_USER_NOTICE);
85
  trigger_error(__('[INFO]: PHP ver.:','backwpup').' '.phpversion().'; '.php_sapi_name().'; '.PHP_OS,E_USER_NOTICE);
86
+ if (ini_get('safe_mode'))
87
+ trigger_error(__('[INFO]: PHP Safe mode is ON!','backwpup'),E_USER_NOTICE);
88
  trigger_error(__('[INFO]: MySQL ver.:','backwpup').' '.mysql_result(mysql_query("SELECT VERSION() AS version"),0),E_USER_NOTICE);
89
  $curlversion=curl_version();
90
  trigger_error(__('[INFO]: curl ver.:','backwpup').' '.$curlversion['version'].'; '.$curlversion['ssl_version'],E_USER_NOTICE);
pages/func_backwpup.php CHANGED
@@ -230,10 +230,8 @@ function backwpup_show_info_td() {
230
  if (!current_user_can(BACKWPUP_USER_CAPABILITY))
231
  die('-1');
232
  global $wpdb;
233
- $jobid=$_POST['jobid'];
234
  $mode=$_POST['mode'];
235
- $jobs=get_option('backwpup_jobs');
236
- $jobvalue=$jobs[$jobid];
237
  if (in_array('FILE',explode('+',$jobvalue['type']))) {
238
  $files=backwpup_calc_file_size($jobvalue);
239
  echo __("Files Size:","backwpup")." ".backwpup_formatBytes($files['size'])."<br />";
230
  if (!current_user_can(BACKWPUP_USER_CAPABILITY))
231
  die('-1');
232
  global $wpdb;
 
233
  $mode=$_POST['mode'];
234
+ $jobvalue=backwpup_get_job_vars($_POST['jobid']);
 
235
  if (in_array('FILE',explode('+',$jobvalue['type']))) {
236
  $files=backwpup_calc_file_size($jobvalue);
237
  echo __("Files Size:","backwpup")." ".backwpup_formatBytes($files['size'])."<br />";
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mail%
4
  Tags: backup, admin, file, Database, mysql, Cron, ftp, S3, export, xml, Rackspace, Cloud, Azure, DropBox, SugarSync, Google, Storage
5
  Requires at least: 3.2
6
  Tested up to: 3.2
7
- Stable tag: 2.0.0
8
 
9
  Backup your WordPress Database and Files, and more!
10
 
@@ -127,6 +127,10 @@ Destinations are:
127
  4. Backups Manage Page
128
 
129
  == Changelog ==
 
 
 
 
130
  = 2.0.0 =
131
  * PHP Sessions, curl and PHP version 5.2.4 required!
132
  * Wordpress 3.2 required!
4
  Tags: backup, admin, file, Database, mysql, Cron, ftp, S3, export, xml, Rackspace, Cloud, Azure, DropBox, SugarSync, Google, Storage
5
  Requires at least: 3.2
6
  Tested up to: 3.2
7
+ Stable tag: 2.0.1
8
 
9
  Backup your WordPress Database and Files, and more!
10
 
127
  4. Backups Manage Page
128
 
129
  == Changelog ==
130
+ = 2.0.1 =
131
+ * Zip file creation now faster agin but no stat output
132
+ * serverl bug fixes
133
+
134
  = 2.0.0 =
135
  * PHP Sessions, curl and PHP version 5.2.4 required!
136
  * Wordpress 3.2 required!