BackWPup – WordPress Backup Plugin - Version 1.3.2

Version Description

  • added changeble backup file prefix
  • bug fixes
Download this release

Release Info

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

Code changes from version 1.3.1 to 1.3.2

app/backwpup_dojob.php CHANGED
@@ -123,7 +123,7 @@ class backwpup_dojob {
123
  $this->jobid=$jobid; //set job id
124
  $this->cfg=get_option('backwpup'); //load config
125
  $jobs=get_option('backwpup_jobs'); //load jobdata
126
- $this->job=backwpup_check_job_vars($jobs[$this->jobid]);//Set and check job settings
127
  //set Logs Dir
128
  $this->logdir=trailingslashit($this->cfg['dirlogs']);
129
  if (empty($this->logdir) or $this->logdir=='/') {
@@ -159,30 +159,28 @@ class backwpup_dojob {
159
  else
160
  set_error_handler('backwpup_joberrorhandler',E_ALL & ~E_NOTICE);
161
  //find out if job already running and abort if
162
- if ($jobs[$this->jobid]['starttime']>0 and empty($jobs[$this->jobid]['stoptime'])) {
163
  if ($jobs[$this->jobid]['starttime']+600<current_time('timestamp')) { //Abort old jo if work longer as 10 min. because websever has 300 sec timeout
164
  trigger_error(__('Working Job will closed!!! And a new started!!!','backwpup'),E_USER_WARNING);
165
  //old logfile end
166
- if (is_file($jobs[$this->jobid]['logfile'])) {
167
- $fd=fopen($jobs[$this->jobid]['logfile'],"a+");
168
- fputs($fd,"<span style=\"background-color:c3c3c3;\" title=\"[Line: ".__LINE__."|File: ".basename(__FILE__)."\">".date_i18n('Y-m-d H:i.s').":</span> <span style=\"background-color:red;\">".__('[ERROR]','backwpup')." ".__('Backup Aborted working to long!!!','backwpup')."</span><br />\n");
169
- fputs($fd,"</body>\n</html>\n");
170
- fclose($fd);
171
- $logheader=backwpup_read_logheader($jobs[$this->jobid]['logfile']); //read waring count from log header
172
- $logheader['errors']++;
173
- //write new log header
174
- $fd=@fopen($jobs[$this->jobid]['logfile'],"r+");
175
- while (!feof($fd)) {
176
- $line=@fgets($fd);
177
- if (stripos($line,"<meta name=\"backwpup_errors\"") !== false and isset($errors)) {
178
- @fseek($fd,$filepos);
179
- @fputs($fd,str_pad("<meta name=\"backwpup_errors\" content=\"".$logheader['errors']."\" />",100)."\n");
180
- break;
181
- }
182
- $filepos=ftell($fd);
183
  }
184
- @fclose($fd);
185
  }
 
186
  } else {
187
  trigger_error(sprintf(__('Job %1$s already running!!!','backwpup'),$this->job['name']),E_USER_ERROR);
188
  return false;
@@ -190,7 +188,6 @@ class backwpup_dojob {
190
  }
191
  //Set job start settings
192
  $jobs[$this->jobid]['starttime']=current_time('timestamp'); //set start time for job
193
- $jobs[$this->jobid]['stoptime']=''; //Set stop time for job
194
  $jobs[$this->jobid]['logfile']=$this->logdir.$this->logfile; //Set current logfile
195
  $jobs[$this->jobid]['cronnextrun']=backwpup_cron_next($jobs[$this->jobid]['cron']); //set next run
196
  update_option('backwpup_jobs',$jobs); //Save job Settings
@@ -213,7 +210,7 @@ class backwpup_dojob {
213
  }
214
  //set Backup file name only for jos that makes backups
215
  if (in_array('FILE',$this->todo) or in_array('DB',$this->todo) or in_array('WPEXP',$this->todo))
216
- $this->backupfile='backwpup_'.$this->jobid.'_'.date_i18n('Y-m-d_H-i-s').$this->backupfileformat;
217
  //check max script execution tme
218
  if (ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='on' or ini_get('safe_mode')=='1')
219
  trigger_error(sprintf(__('PHP Safe Mode is on!!! Max exec time is %1$d sec.','backwpup'),ini_get('max_execution_time')),E_USER_WARNING);
@@ -979,7 +976,7 @@ class backwpup_dojob {
979
  $backupfilelist=array();
980
  if ($filelist=ftp_nlist($ftp_conn_id, $this->job['ftpdir'])) {
981
  foreach($filelist as $files) {
982
- if ('backwpup_'.$this->jobid.'_' == substr(basename($files),0,strlen('backwpup_'.$this->jobid.'_')) and $this->backupfileformat == substr(basename($files),-strlen($this->backupfileformat)))
983
  $backupfilelist[]=basename($files);
984
  }
985
  if (sizeof($backupfilelist)>0) {
@@ -1094,7 +1091,7 @@ class backwpup_dojob {
1094
  foreach ($contents as $object) {
1095
  $file=basename($object['name']);
1096
  if ($this->job['awsdir'].$file == $object['name']) {//only in the folder and not in complete bucket
1097
- if ('backwpup_'.$this->jobid.'_' == substr($file,0,strlen('backwpup_'.$this->jobid.'_')) and $this->backupfileformat == substr($file,-strlen($this->backupfileformat)))
1098
  $backupfilelist[]=$file;
1099
  }
1100
  }
@@ -1181,7 +1178,7 @@ class backwpup_dojob {
1181
  foreach ($contents as $object) {
1182
  $file=basename($object);
1183
  if ($this->job['rscdir'].$file == $object) {//only in the folder and not in complete bucket
1184
- if ('backwpup_'.$this->jobid.'_' == substr($file,0,strlen('backwpup_'.$this->jobid.'_')) and $this->backupfileformat == substr($file,-strlen($this->backupfileformat)))
1185
  $backupfilelist[]=$file;
1186
  }
1187
  }
@@ -1213,7 +1210,7 @@ class backwpup_dojob {
1213
  if (!empty($this->job['maxbackups'])) {
1214
  if ( $dir = @opendir($this->job['backupdir']) ) { //make file list
1215
  while (($file = readdir($dir)) !== false ) {
1216
- if ('backwpup_'.$this->jobid.'_' == substr($file,0,strlen('backwpup_'.$this->jobid.'_')) and $this->backupfileformat == substr($file,-strlen($this->backupfileformat)))
1217
  $backupfilelist[]=$file;
1218
  }
1219
  @closedir( $dir );
@@ -1258,13 +1255,11 @@ class backwpup_dojob {
1258
  }
1259
 
1260
  $jobs=get_option('backwpup_jobs');
1261
- $jobs[$this->jobid]['stoptime']=current_time('timestamp');
1262
  $jobs[$this->jobid]['lastrun']=$jobs[$this->jobid]['starttime'];
1263
- $jobs[$this->jobid]['lastruntime']=$jobs[$this->jobid]['stoptime']-$jobs[$this->jobid]['starttime'];
1264
  $jobs[$this->jobid]['logfile']='';
1265
  $jobs[$this->jobid]['starttime']='';
1266
  update_option('backwpup_jobs',$jobs); //Save Settings
1267
- $this->job['stoptime']=$jobs[$this->jobid]['stoptime'];
1268
  $this->job['lastrun']=$jobs[$this->jobid]['lastrun'];
1269
  $this->job['lastruntime']=$jobs[$this->jobid]['lastruntime'];
1270
  trigger_error(sprintf(__('Job done in %1s sec.','backwpup'),$this->job['lastruntime']),E_USER_NOTICE);
@@ -1328,7 +1323,7 @@ class backwpup_dojob {
1328
  $mailbody.=__("Errors:","backwpup")." ".$logdata['errors']."\n";
1329
  if (!empty($logdata['warnings']))
1330
  $mailbody.=__("Warnings:","backwpup")." ".$logdata['warnings']."\n";
1331
- wp_mail($this->job['mailaddresslog'],__('BackWPup Log File from','backwpup').' '.date_i18n('Y-m-d H:i',$this->job['starttime']).': '.$this->job['name'] ,$mailbody,'',array($this->logdir.$this->logfile));
1332
  }
1333
  }
1334
  }
123
  $this->jobid=$jobid; //set job id
124
  $this->cfg=get_option('backwpup'); //load config
125
  $jobs=get_option('backwpup_jobs'); //load jobdata
126
+ $this->job=backwpup_check_job_vars($jobs[$this->jobid],$this->jobid);//Set and check job settings
127
  //set Logs Dir
128
  $this->logdir=trailingslashit($this->cfg['dirlogs']);
129
  if (empty($this->logdir) or $this->logdir=='/') {
159
  else
160
  set_error_handler('backwpup_joberrorhandler',E_ALL & ~E_NOTICE);
161
  //find out if job already running and abort if
162
+ if ($jobs[$this->jobid]['starttime']>0 and !empty($jobs[$this->jobid]['logfile'])) {
163
  if ($jobs[$this->jobid]['starttime']+600<current_time('timestamp')) { //Abort old jo if work longer as 10 min. because websever has 300 sec timeout
164
  trigger_error(__('Working Job will closed!!! And a new started!!!','backwpup'),E_USER_WARNING);
165
  //old logfile end
166
+ $fd=fopen($jobs[$this->jobid]['logfile'],"a+");
167
+ fputs($fd,"<span style=\"background-color:c3c3c3;\" title=\"[Line: ".__LINE__."|File: ".basename(__FILE__)."\">".date_i18n('Y-m-d H:i.s').":</span> <span style=\"background-color:red;\">".__('[ERROR]','backwpup')." ".__('Backup Aborted working to long!!!','backwpup')."</span><br />\n");
168
+ fputs($fd,"</body>\n</html>\n");
169
+ fclose($fd);
170
+ $logheader=backwpup_read_logheader($jobs[$this->jobid]['logfile']); //read waring count from log header
171
+ $logheader['errors']++;
172
+ //write new log header
173
+ $fd=@fopen($jobs[$this->jobid]['logfile'],"r+");
174
+ while (!feof($fd)) {
175
+ $line=@fgets($fd);
176
+ if (stripos($line,"<meta name=\"backwpup_errors\"") !== false and isset($errors)) {
177
+ @fseek($fd,$filepos);
178
+ @fputs($fd,str_pad("<meta name=\"backwpup_errors\" content=\"".$logheader['errors']."\" />",100)."\n");
179
+ break;
 
 
 
180
  }
181
+ $filepos=ftell($fd);
182
  }
183
+ @fclose($fd);
184
  } else {
185
  trigger_error(sprintf(__('Job %1$s already running!!!','backwpup'),$this->job['name']),E_USER_ERROR);
186
  return false;
188
  }
189
  //Set job start settings
190
  $jobs[$this->jobid]['starttime']=current_time('timestamp'); //set start time for job
 
191
  $jobs[$this->jobid]['logfile']=$this->logdir.$this->logfile; //Set current logfile
192
  $jobs[$this->jobid]['cronnextrun']=backwpup_cron_next($jobs[$this->jobid]['cron']); //set next run
193
  update_option('backwpup_jobs',$jobs); //Save job Settings
210
  }
211
  //set Backup file name only for jos that makes backups
212
  if (in_array('FILE',$this->todo) or in_array('DB',$this->todo) or in_array('WPEXP',$this->todo))
213
+ $this->backupfile=$this->job['fileprefix'].date_i18n('Y-m-d_H-i-s').$this->backupfileformat;
214
  //check max script execution tme
215
  if (ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='on' or ini_get('safe_mode')=='1')
216
  trigger_error(sprintf(__('PHP Safe Mode is on!!! Max exec time is %1$d sec.','backwpup'),ini_get('max_execution_time')),E_USER_WARNING);
976
  $backupfilelist=array();
977
  if ($filelist=ftp_nlist($ftp_conn_id, $this->job['ftpdir'])) {
978
  foreach($filelist as $files) {
979
+ if ($this->job['fileprefix'] == substr(basename($files),0,strlen($this->job['fileprefix'])) and $this->backupfileformat == substr(basename($files),-strlen($this->backupfileformat)))
980
  $backupfilelist[]=basename($files);
981
  }
982
  if (sizeof($backupfilelist)>0) {
1091
  foreach ($contents as $object) {
1092
  $file=basename($object['name']);
1093
  if ($this->job['awsdir'].$file == $object['name']) {//only in the folder and not in complete bucket
1094
+ if ($this->job['fileprefix'] == substr($file,0,strlen($this->job['fileprefix'])) and $this->backupfileformat == substr($file,-strlen($this->backupfileformat)))
1095
  $backupfilelist[]=$file;
1096
  }
1097
  }
1178
  foreach ($contents as $object) {
1179
  $file=basename($object);
1180
  if ($this->job['rscdir'].$file == $object) {//only in the folder and not in complete bucket
1181
+ if ($this->job['fileprefix'] == substr($file,0,strlen($this->job['fileprefix'])) and $this->backupfileformat == substr($file,-strlen($this->backupfileformat)))
1182
  $backupfilelist[]=$file;
1183
  }
1184
  }
1210
  if (!empty($this->job['maxbackups'])) {
1211
  if ( $dir = @opendir($this->job['backupdir']) ) { //make file list
1212
  while (($file = readdir($dir)) !== false ) {
1213
+ if ($this->job['fileprefix'] == substr($file,0,strlen($this->job['fileprefix'])) and $this->backupfileformat == substr($file,-strlen($this->backupfileformat)))
1214
  $backupfilelist[]=$file;
1215
  }
1216
  @closedir( $dir );
1255
  }
1256
 
1257
  $jobs=get_option('backwpup_jobs');
 
1258
  $jobs[$this->jobid]['lastrun']=$jobs[$this->jobid]['starttime'];
1259
+ $jobs[$this->jobid]['lastruntime']=current_time('timestamp')-$jobs[$this->jobid]['starttime'];
1260
  $jobs[$this->jobid]['logfile']='';
1261
  $jobs[$this->jobid]['starttime']='';
1262
  update_option('backwpup_jobs',$jobs); //Save Settings
 
1263
  $this->job['lastrun']=$jobs[$this->jobid]['lastrun'];
1264
  $this->job['lastruntime']=$jobs[$this->jobid]['lastruntime'];
1265
  trigger_error(sprintf(__('Job done in %1s sec.','backwpup'),$this->job['lastruntime']),E_USER_NOTICE);
1323
  $mailbody.=__("Errors:","backwpup")." ".$logdata['errors']."\n";
1324
  if (!empty($logdata['warnings']))
1325
  $mailbody.=__("Warnings:","backwpup")." ".$logdata['warnings']."\n";
1326
+ wp_mail($this->job['mailaddresslog'],__('BackWPup Log File from','backwpup').' '.date_i18n('Y-m-d H:i',$this->job['lastruntime']).': '.$this->job['name'] ,$mailbody,'',array($this->logdir.$this->logfile));
1327
  }
1328
  }
1329
  }
app/functions.php CHANGED
@@ -79,7 +79,7 @@ if ( !defined('ABSPATH') )
79
  default:
80
  echo "<div class=\"wrap\">";
81
  echo "<div id=\"icon-tools\" class=\"icon32\"><br /></div>";
82
- echo "<h2>".__('BackWPup', 'backwpup')."&nbsp;<a href=\"".wp_nonce_url('admin.php?page=BackWPup&subpage=edit&jobid=0', 'edit-job')."\" class=\"button add-new-h2\">".esc_html__('Add New')."</a></h2>";
83
  backwpup_option_submenues();
84
  echo "<form id=\"posts-filter\" action=\"\" method=\"post\">";
85
  echo "<input type=\"hidden\" name=\"page\" value=\"BackWPup\" />";
@@ -195,7 +195,7 @@ if ( !defined('ABSPATH') )
195
 
196
 
197
  //Checking,upgrade and default job setting
198
- function backwpup_check_job_vars($jobsettings) {
199
  global $wpdb;
200
  //check job type
201
  if (!isset($jobsettings['type']) or !is_string($jobsettings['type']))
@@ -343,10 +343,13 @@ if ( !defined('ABSPATH') )
343
  }
344
  sort($jobsettings['backupuploadsexcludedirs']);
345
 
346
- $fileformarts=array('.zip','.tar.gz','tar.bz2','.tar');
347
  if (!isset($jobsettings['fileformart']) or !in_array($jobsettings['fileformart'],$fileformarts))
348
  $jobsettings['fileformart']='.zip';
349
-
 
 
 
350
  if (!isset($jobsettings['mailefilesize']) or !is_float($jobsettings['mailefilesize']))
351
  $jobsettings['mailefilesize']=0;
352
 
@@ -807,7 +810,7 @@ if ( !defined('ABSPATH') )
807
  }
808
 
809
  foreach ($jobs as $jobid => $jobvalue) { //go job by job
810
- $jobvalue=backwpup_check_job_vars($jobvalue); //Check job values
811
  $todo=explode('+',$jobvalue['type']); //only for backup jobs
812
  if (!in_array('FILE',$todo) and !in_array('DB',$todo) and !in_array('WPEXP',$todo))
813
  continue;
@@ -1198,9 +1201,6 @@ if ( !defined('ABSPATH') )
1198
  if (!is_writable($cfg['dirtemp'])) { // check Temp folder
1199
  $message.=__('- Temp Folder not writeable:','backwpup') . ' '.$cfg['dirtemp'].'<br />';
1200
  }
1201
- if (!is_writable($cfg['dirtemp'])) { // check Temp folder
1202
- $message.=__('- Temp Folder not writeable:','backwpup') . ' '.$cfg['dirtemp'].'<br />';
1203
- }
1204
  $jobs=(array)get_option('backwpup_jobs');
1205
  foreach ($jobs as $jobid => $jobvalue) { //check for old cheduling
1206
  if (isset($jobvalue['scheduletime']) and empty($jobvalue['cron']))
79
  default:
80
  echo "<div class=\"wrap\">";
81
  echo "<div id=\"icon-tools\" class=\"icon32\"><br /></div>";
82
+ echo "<h2>".__('BackWPup', 'backwpup')."&nbsp;<a href=\"".wp_nonce_url('admin.php?page=BackWPup&subpage=edit', 'edit-job')."\" class=\"button add-new-h2\">".esc_html__('Add New')."</a></h2>";
83
  backwpup_option_submenues();
84
  echo "<form id=\"posts-filter\" action=\"\" method=\"post\">";
85
  echo "<input type=\"hidden\" name=\"page\" value=\"BackWPup\" />";
195
 
196
 
197
  //Checking,upgrade and default job setting
198
+ function backwpup_check_job_vars($jobsettings,$jobid='') {
199
  global $wpdb;
200
  //check job type
201
  if (!isset($jobsettings['type']) or !is_string($jobsettings['type']))
343
  }
344
  sort($jobsettings['backupuploadsexcludedirs']);
345
 
346
+ $fileformarts=array('.zip','.tar.gz','.tar.bz2','.tar');
347
  if (!isset($jobsettings['fileformart']) or !in_array($jobsettings['fileformart'],$fileformarts))
348
  $jobsettings['fileformart']='.zip';
349
+
350
+ if (!isset($jobsettings['fileprefix']) or !is_string($jobsettings['fileprefix']))
351
+ $jobsettings['fileprefix']='backwpup_'.$jobid.'_';
352
+
353
  if (!isset($jobsettings['mailefilesize']) or !is_float($jobsettings['mailefilesize']))
354
  $jobsettings['mailefilesize']=0;
355
 
810
  }
811
 
812
  foreach ($jobs as $jobid => $jobvalue) { //go job by job
813
+ $jobvalue=backwpup_check_job_vars($jobvalue,$jobid); //Check job values
814
  $todo=explode('+',$jobvalue['type']); //only for backup jobs
815
  if (!in_array('FILE',$todo) and !in_array('DB',$todo) and !in_array('WPEXP',$todo))
816
  continue;
1201
  if (!is_writable($cfg['dirtemp'])) { // check Temp folder
1202
  $message.=__('- Temp Folder not writeable:','backwpup') . ' '.$cfg['dirtemp'].'<br />';
1203
  }
 
 
 
1204
  $jobs=(array)get_option('backwpup_jobs');
1205
  foreach ($jobs as $jobid => $jobvalue) { //check for old cheduling
1206
  if (isset($jobvalue['scheduletime']) and empty($jobvalue['cron']))
app/list-tables.php CHANGED
@@ -71,7 +71,7 @@ class BackWPup_Jobs_Table extends WP_List_Table {
71
  function display_rows() {
72
  $style = '';
73
  foreach ( $this->items as $jobid => $jobvalue ) {
74
- $jobvalue=backwpup_check_job_vars($jobvalue);//Set and check job settings
75
  $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
76
  echo "\n\t", $this->single_row( $jobid, $jobvalue, $style );
77
  }
@@ -100,13 +100,13 @@ class BackWPup_Jobs_Table extends WP_List_Table {
100
  case 'jobname':
101
  $r .= "<td $attributes><strong><a href=\"".wp_nonce_url('admin.php?page=BackWPup&subpage=edit&jobid='.$jobid, 'edit-job')."\" title=\"".__('Edit:','backwpup').$jobvalue['name']."\">".esc_html($jobvalue['name'])."</a></strong>";
102
  $actions = array();
103
- if (empty($jobvalue['logfile']) and empty($jobvalue['starttime'])) {
104
  $actions['edit'] = "<a href=\"" . wp_nonce_url('admin.php?page=BackWPup&subpage=edit&jobid='.$jobid, 'edit-job') . "\">" . __('Edit') . "</a>";
105
  $actions['copy'] = "<a href=\"" . wp_nonce_url('admin.php?page=BackWPup&action=copy&jobid='.$jobid, 'copy-job_'.$jobid) . "\">" . __('Copy','backwpup') . "</a>";
106
  $actions['delete'] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url('admin.php?page=BackWPup&action=delete&jobs[]='.$jobid, 'bulk-jobs') . "\" onclick=\"if ( confirm('" . esc_js(__("You are about to delete this Job. \n 'Cancel' to stop, 'OK' to delete.","backwpup")) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
107
  $actions['runnow'] = "<a href=\"" . wp_nonce_url('admin.php?page=BackWPup&subpage=runnow&jobid='.$jobid, 'runnow-job_'.$jobid) . "\">" . __('Run Now','backwpup') . "</a>";
108
  } else {
109
- $actions['clear'] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url('admin.php?page=BackWPup&action=clear&jobid='.$jobid, 'clear-job_'.$jobid) . "\">" . __('Abort','backwpup') . "</a>";
110
  }
111
  $action_count = count($actions);
112
  $i = 0;
@@ -145,7 +145,7 @@ class BackWPup_Jobs_Table extends WP_List_Table {
145
  break;
146
  case 'next':
147
  $r .= "<td $attributes>";
148
- if ($jobvalue['starttime']>0 and empty($jobvalue['stoptime'])) {
149
  $runtime=current_time('timestamp')-$jobvalue['starttime'];
150
  $r .= __('Running since:','backwpup').' '.$runtime.' '.__('sec.','backwpup');
151
  } elseif ($jobvalue['activated']) {
@@ -424,7 +424,7 @@ class BackWPup_Backups_Table extends WP_List_Table {
424
  $jobs=get_option('backwpup_jobs'); //Load jobs
425
  foreach ( $this->items as $backup ) {
426
  $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
427
- echo "\n\t", $this->single_row( $backup, backwpup_check_job_vars($jobs[$backup['jobid']]), $style );
428
  }
429
  }
430
 
71
  function display_rows() {
72
  $style = '';
73
  foreach ( $this->items as $jobid => $jobvalue ) {
74
+ $jobvalue=backwpup_check_job_vars($jobvalue,$jobid);//Set and check job settings
75
  $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
76
  echo "\n\t", $this->single_row( $jobid, $jobvalue, $style );
77
  }
100
  case 'jobname':
101
  $r .= "<td $attributes><strong><a href=\"".wp_nonce_url('admin.php?page=BackWPup&subpage=edit&jobid='.$jobid, 'edit-job')."\" title=\"".__('Edit:','backwpup').$jobvalue['name']."\">".esc_html($jobvalue['name'])."</a></strong>";
102
  $actions = array();
103
+ if (empty($jobvalue['logfile']) and !empty($jobvalue['starttime'])) {
104
  $actions['edit'] = "<a href=\"" . wp_nonce_url('admin.php?page=BackWPup&subpage=edit&jobid='.$jobid, 'edit-job') . "\">" . __('Edit') . "</a>";
105
  $actions['copy'] = "<a href=\"" . wp_nonce_url('admin.php?page=BackWPup&action=copy&jobid='.$jobid, 'copy-job_'.$jobid) . "\">" . __('Copy','backwpup') . "</a>";
106
  $actions['delete'] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url('admin.php?page=BackWPup&action=delete&jobs[]='.$jobid, 'bulk-jobs') . "\" onclick=\"if ( confirm('" . esc_js(__("You are about to delete this Job. \n 'Cancel' to stop, 'OK' to delete.","backwpup")) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
107
  $actions['runnow'] = "<a href=\"" . wp_nonce_url('admin.php?page=BackWPup&subpage=runnow&jobid='.$jobid, 'runnow-job_'.$jobid) . "\">" . __('Run Now','backwpup') . "</a>";
108
  } else {
109
+ $actions['clear'] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url('admin.php?page=BackWPup&action=clear&jobid='.$jobid, 'clear-job_'.$jobid) . "\">" . __('Clear','backwpup') . "</a>";
110
  }
111
  $action_count = count($actions);
112
  $i = 0;
145
  break;
146
  case 'next':
147
  $r .= "<td $attributes>";
148
+ if ($jobvalue['starttime']>0 and !empty($jobvalue['logfile'])) {
149
  $runtime=current_time('timestamp')-$jobvalue['starttime'];
150
  $r .= __('Running since:','backwpup').' '.$runtime.' '.__('sec.','backwpup');
151
  } elseif ($jobvalue['activated']) {
424
  $jobs=get_option('backwpup_jobs'); //Load jobs
425
  foreach ( $this->items as $backup ) {
426
  $style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
427
+ echo "\n\t", $this->single_row( $backup, backwpup_check_job_vars($jobs[$backup['jobid']],$backup['jobid']), $style );
428
  }
429
  }
430
 
app/options-edit-job.php CHANGED
@@ -5,9 +5,7 @@ if ( !defined('ABSPATH') )
5
 
6
  check_admin_referer('edit-job');
7
  global $wpdb;
8
- $jobs=get_option('backwpup_jobs');
9
  $jobid = (int) $_REQUEST['jobid'];
10
- $jobvalue=backwpup_check_job_vars($jobs[$jobid]);
11
  ?>
12
  <div class="wrap">
13
  <div id="icon-tools" class="icon32"><br /></div>
@@ -18,7 +16,8 @@ $jobvalue=backwpup_check_job_vars($jobs[$jobid]);
18
  <input type="hidden" name="jobid" value="<?PHP echo $jobid;?>" />
19
  <?php
20
  wp_nonce_field('edit-job');
21
- $jobvalue=backwpup_check_job_vars($jobvalue);
 
22
  $todo=explode('+',$jobvalue['type']);
23
  ?>
24
 
@@ -157,22 +156,27 @@ $todo=explode('+',$jobvalue['type']);
157
  </div>
158
 
159
  <div id="fileformart" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
160
- <h3 class="hndle"><span><?PHP _e('Backup File Format','backwpup'); ?></span></h3>
161
  <div class="inside">
 
 
 
162
  <?PHP
163
  if (function_exists('gzopen') or class_exists('ZipArchive'))
164
- echo '<input class="radio" type="radio"'.checked('.zip',$jobvalue['fileformart'],false).' name="fileformart" value=".zip" />'.__('ZIP (.zip)','backwpup').'<br />';
165
  else
166
- echo '<input class="radio" type="radio"'.checked('.zip',$jobvalue['fileformart'],false).' name="fileformart" value=".zip" disabled="disabled" />'.__('ZIP (.zip)','backwpup').'<br />';
167
- echo '<input class="radio" type="radio"'.checked('.tar',$jobvalue['fileformart'],false).' name="fileformart" value=".tar" />'.__('TAR (.tar)','backwpup').'<br />';
168
  if (function_exists('gzopen'))
169
- echo '<input class="radio" type="radio"'.checked('.tar.gz',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.gz" />'.__('TAR GZIP (.tar.gz)','backwpup').'<br />';
170
  else
171
- echo '<input class="radio" type="radio"'.checked('.tar.gz',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.gz" disabled="disabled" />'.__('TAR GZIP (.tar.gz)','backwpup').'<br />';
172
  if (function_exists('bzopen'))
173
- echo '<input class="radio" type="radio"'.checked('.tar.bz2',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.bz2" />'.__('TAR BZIP2 (.tar.bz2)','backwpup').'<br />';
174
  else
175
- echo '<input class="radio" type="radio"'.checked('.tar.bz2',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.bz2" disabled="disabled" />'.__('TAR BZIP2 (.tar.bz2)','backwpup').'<br />';
 
 
176
  ?>
177
  </div>
178
  </div>
5
 
6
  check_admin_referer('edit-job');
7
  global $wpdb;
 
8
  $jobid = (int) $_REQUEST['jobid'];
 
9
  ?>
10
  <div class="wrap">
11
  <div id="icon-tools" class="icon32"><br /></div>
16
  <input type="hidden" name="jobid" value="<?PHP echo $jobid;?>" />
17
  <?php
18
  wp_nonce_field('edit-job');
19
+ $jobs=get_option('backwpup_jobs');
20
+ $jobvalue=backwpup_check_job_vars($jobs[$jobid],$jobid);
21
  $todo=explode('+',$jobvalue['type']);
22
  ?>
23
 
156
  </div>
157
 
158
  <div id="fileformart" class="postbox" <?PHP if (!in_array("FILE",$todo) and !in_array("DB",$todo) and !in_array("WPEXP",$todo)) echo 'style="display:none;"';?>>
159
+ <h3 class="hndle"><span><?PHP _e('Backup File','backwpup'); ?></span></h3>
160
  <div class="inside">
161
+ <b><?PHP _e('File Prefix:','backwpup'); ?></b><br />
162
+ <input name="fileprefix" type="text" value="<?PHP echo $jobvalue['fileprefix'];?>" class="large-text" /><br />
163
+ <b><?PHP _e('File Formart:','backwpup'); ?></b><br />
164
  <?PHP
165
  if (function_exists('gzopen') or class_exists('ZipArchive'))
166
+ echo '<input class="radio" type="radio"'.checked('.zip',$jobvalue['fileformart'],false).' name="fileformart" value=".zip" />'.__('Zip','backwpup').'<br />';
167
  else
168
+ echo '<input class="radio" type="radio"'.checked('.zip',$jobvalue['fileformart'],false).' name="fileformart" value=".zip" disabled="disabled" />'.__('Zip','backwpup').'<br />';
169
+ echo '<input class="radio" type="radio"'.checked('.tar',$jobvalue['fileformart'],false).' name="fileformart" value=".tar" />'.__('Tar','backwpup').'<br />';
170
  if (function_exists('gzopen'))
171
+ echo '<input class="radio" type="radio"'.checked('.tar.gz',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.gz" />'.__('Tar GZip','backwpup').'<br />';
172
  else
173
+ echo '<input class="radio" type="radio"'.checked('.tar.gz',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.gz" disabled="disabled" />'.__('Tar GZip','backwpup').'<br />';
174
  if (function_exists('bzopen'))
175
+ echo '<input class="radio" type="radio"'.checked('.tar.bz2',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.bz2" />'.__('Tar BZip2','backwpup').'<br />';
176
  else
177
+ echo '<input class="radio" type="radio"'.checked('.tar.bz2',$jobvalue['fileformart'],false).' name="fileformart" value=".tar.bz2" disabled="disabled" />'.__('Tar BZip2','backwpup').'<br />';
178
+ _e('Example:','backwpup');
179
+ echo '<br /><i>'.$jobvalue['fileprefix'].date_i18n('Y-m-d_H-i-s').$jobvalue['fileformart'].'</i>';
180
  ?>
181
  </div>
182
  </div>
app/options-save.php CHANGED
@@ -128,7 +128,7 @@ function backwpup_backups_operations($action) {
128
 
129
  $num=0;
130
  foreach ($deletebackups as $backups) {
131
- $jobvalue=backwpup_check_job_vars($jobs[$backups['jobid']]); //Check job values
132
  if ($backups['type']=='FOLDER') {
133
  if (is_file($backups['file']))
134
  unlink($backups['file']);
@@ -369,6 +369,7 @@ function backwpup_save_job() { //Save Job settings
369
  $jobs[$jobid]['backupthemesexcludedirs']=(array)$_POST['backupthemesexcludedirs'];
370
  $jobs[$jobid]['backupuploads']= $_POST['backupuploads']==1 ? true : false;
371
  $jobs[$jobid]['backupuploadsexcludedirs']=(array)$_POST['backupuploadsexcludedirs'];
 
372
  $jobs[$jobid]['fileformart']=$_POST['fileformart'];
373
  $jobs[$jobid]['mailefilesize']=(float)$_POST['mailefilesize'];
374
  $jobs[$jobid]['backupdir']=stripslashes($_POST['backupdir']);
@@ -397,7 +398,7 @@ function backwpup_save_job() { //Save Job settings
397
  unset($jobs[$jobid]['scheduleintervalteimes']);
398
  unset($jobs[$jobid]['scheduleinterval']);
399
 
400
- $jobs[$jobid]=backwpup_check_job_vars($jobs[$jobid]); //check vars and set def.
401
 
402
  if (!empty($_POST['newawsBucket']) and !empty($_POST['awsAccessKey']) and !empty($_POST['awsSecretKey'])) { //create new s3 bucket if needed
403
  if (!class_exists('S3'))
@@ -424,10 +425,8 @@ function backwpup_save_job() { //Save Job settings
424
 
425
  //save chages
426
  update_option('backwpup_jobs',$jobs);
427
-
428
  $backwpup_message.=str_replace('%1',$jobs[$jobid]['name'],__('Job \'%1\' changes saved.', 'backwpup')).' <a href="admin.php?page=BackWPup">'.__('Jobs overview.', 'backwpup').'</a>';
429
  return $backwpup_message;
430
- //go to job page
431
- $_REQUEST['jobid']=$jobid;
432
  }
433
  ?>
128
 
129
  $num=0;
130
  foreach ($deletebackups as $backups) {
131
+ $jobvalue=backwpup_check_job_vars($jobs[$backups['jobid']],$backups['jobid']); //Check job values
132
  if ($backups['type']=='FOLDER') {
133
  if (is_file($backups['file']))
134
  unlink($backups['file']);
369
  $jobs[$jobid]['backupthemesexcludedirs']=(array)$_POST['backupthemesexcludedirs'];
370
  $jobs[$jobid]['backupuploads']= $_POST['backupuploads']==1 ? true : false;
371
  $jobs[$jobid]['backupuploadsexcludedirs']=(array)$_POST['backupuploadsexcludedirs'];
372
+ $jobs[$jobid]['fileprefix']=$_POST['fileprefix'];
373
  $jobs[$jobid]['fileformart']=$_POST['fileformart'];
374
  $jobs[$jobid]['mailefilesize']=(float)$_POST['mailefilesize'];
375
  $jobs[$jobid]['backupdir']=stripslashes($_POST['backupdir']);
398
  unset($jobs[$jobid]['scheduleintervalteimes']);
399
  unset($jobs[$jobid]['scheduleinterval']);
400
 
401
+ $jobs[$jobid]=backwpup_check_job_vars($jobs[$jobid],$jobid); //check vars and set def.
402
 
403
  if (!empty($_POST['newawsBucket']) and !empty($_POST['awsAccessKey']) and !empty($_POST['awsSecretKey'])) { //create new s3 bucket if needed
404
  if (!class_exists('S3'))
425
 
426
  //save chages
427
  update_option('backwpup_jobs',$jobs);
428
+ $_POST['jobid']=$jobid;
429
  $backwpup_message.=str_replace('%1',$jobs[$jobid]['name'],__('Job \'%1\' changes saved.', 'backwpup')).' <a href="admin.php?page=BackWPup">'.__('Jobs overview.', 'backwpup').'</a>';
430
  return $backwpup_message;
 
 
431
  }
432
  ?>
app/options-settings.php CHANGED
@@ -79,7 +79,7 @@ $cfg=get_option('backwpup');
79
  <input name="dirtemp" type="text" value="<?PHP echo $cfg['dirtemp'];?>" class="large-text" /><br />
80
  </div>
81
  </div>
82
- <input type="submit" name="Submit" class="button-primary" value="<?php _e('Save Changes', 'backwpup'); ?>" />
83
  </div>
84
  </div>
85
  </div>
79
  <input name="dirtemp" type="text" value="<?PHP echo $cfg['dirtemp'];?>" class="large-text" /><br />
80
  </div>
81
  </div>
82
+ <input type="submit" name="submit" class="button-primary" value="<?php _e('Save Changes', 'backwpup'); ?>" />
83
  </div>
84
  </div>
85
  </div>
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.3.1
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
@@ -34,7 +34,7 @@ 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.3.1');
38
  //load Text Domain
39
  load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_BASEDIR.'/lang');
40
  //Load functions file
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.3.2
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.3.2');
38
  //load Text Domain
39
  load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_BASEDIR.'/lang');
40
  //Load functions file
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=danie
4
  Tags: backup, admin, file, Database, mysql, cron, ftp, S3, export, xml, Rackspase, cloud, webdav
5
  Requires at least: 2.8
6
  Tested up to: 3.1.0
7
- Stable tag: 1.3.1
8
 
9
  Backup and more of your WordPress Blog Database and Files
10
 
@@ -82,6 +82,10 @@ Place mail only little archives
82
  1. Job Page
83
 
84
  == Changelog ==
 
 
 
 
85
  = 1.3.1 =
86
  * added File and DB size information
87
  * removed "LOCK TABLE" in sql dumps
4
  Tags: backup, admin, file, Database, mysql, cron, ftp, S3, export, xml, Rackspase, cloud, webdav
5
  Requires at least: 2.8
6
  Tested up to: 3.1.0
7
+ Stable tag: 1.3.2
8
 
9
  Backup and more of your WordPress Blog Database and Files
10
 
82
  1. Job Page
83
 
84
  == Changelog ==
85
+ = 1.3.2 =
86
+ * added changeble backup file prefix
87
+ * bug fixes
88
+
89
  = 1.3.1 =
90
  * added File and DB size information
91
  * removed "LOCK TABLE" in sql dumps