BackWPup – WordPress Backup Plugin - Version 0.6.1

Version Description

  • Added setting for Send Mail type.
  • Optimize Memory usage again
  • Fixed Bug that cron not work
Download this release

Release Info

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

Code changes from version 0.6.0 to 0.6.1

app/dojob/after.php CHANGED
@@ -2,31 +2,26 @@
2
  //Delete old Logs/Backupfiles
3
  if (!empty($jobs[$jobid]['maxbackups'])) {
4
  BackWPupFunctions::joblog($logtime,__('Delete old backup files...','backwpup'));
5
- $logs=$wpdb->get_results("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC", ARRAY_A);
6
- if (is_array($logs)) {
7
- $counter=0;$countdelbackups=0;$countdellogs=0;
8
- for ($i=0;$i<sizeof($logs);$i++) {
9
- if (!empty($logs[$i]['backupfile']) or in_array($jobs[$jobid]['type'],$logonlytyps))
10
- $counter++;
11
- if ($counter>=$jobs[$jobid]['maxbackups']) {
12
- if (is_file($logs[$i]['backupfile'])) {
13
- unlink($logs[$i]['backupfile']);
14
- $countdelbackups++;
15
- }
16
- $wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logs[$i]['logtime']);
17
- $countdellogs++;
18
  }
 
 
19
  }
20
  }
21
  if ($countdelbackups>0)
22
  BackWPupFunctions::joblog($logtime,$countdelbackups.' '.__('old backup files deleted!!!','backwpup'));
23
  if ($countdellogs>0)
24
  BackWPupFunctions::joblog($logtime,$countdellogs.' '.__('old logs deleted!!!','backwpup'));
25
- //clean vars
26
- unset($logs);
27
  }
28
 
29
-
30
  if (is_file($backupfile)) {
31
  BackWPupFunctions::joblog($logtime,sprintf(__('Backup zip filesize is %1s','backwpup'),BackWPupFunctions::formatBytes(filesize($backupfile))));
32
  }
@@ -46,6 +41,7 @@ $jobs[$jobid]['lastrun']=$jobs[$jobid]['starttime'];
46
  $jobs[$jobid]['lastruntime']=$jobs[$jobid]['stoptime']-$jobs[$jobid]['starttime'];
47
  $jobs[$jobid]['scheduletime']=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid));
48
  update_option('backwpup_jobs',$jobs); //Save Settings
 
49
  //Write backupfile und worktime to log
50
  $wpdb->update( $wpdb->backwpup_logs, array( 'worktime' => $jobs[$jobid]['lastruntime'], 'backupfile' => mysql_real_escape_string($backupfile)), array( 'logtime' => $logtime ));
51
  ob_end_flush();
2
  //Delete old Logs/Backupfiles
3
  if (!empty($jobs[$jobid]['maxbackups'])) {
4
  BackWPupFunctions::joblog($logtime,__('Delete old backup files...','backwpup'));
5
+ $counter=0;$countdelbackups=0;$countdellogs=0;
6
+ $result=mysql_query("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC");
7
+ while ($logs = mysql_fetch_assoc($result)) {
8
+ if (!empty($logs['backupfile']) or in_array($jobs[$jobid]['type'],$logonlytyps))
9
+ $counter++;
10
+ if ($counter>=$jobs[$jobid]['maxbackups']) {
11
+ if (is_file($logs['backupfile'])) {
12
+ unlink($logs['backupfile']);
13
+ $countdelbackups++;
 
 
 
 
14
  }
15
+ $wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logs['logtime']);
16
+ $countdellogs++;
17
  }
18
  }
19
  if ($countdelbackups>0)
20
  BackWPupFunctions::joblog($logtime,$countdelbackups.' '.__('old backup files deleted!!!','backwpup'));
21
  if ($countdellogs>0)
22
  BackWPupFunctions::joblog($logtime,$countdellogs.' '.__('old logs deleted!!!','backwpup'));
 
 
23
  }
24
 
 
25
  if (is_file($backupfile)) {
26
  BackWPupFunctions::joblog($logtime,sprintf(__('Backup zip filesize is %1s','backwpup'),BackWPupFunctions::formatBytes(filesize($backupfile))));
27
  }
41
  $jobs[$jobid]['lastruntime']=$jobs[$jobid]['stoptime']-$jobs[$jobid]['starttime'];
42
  $jobs[$jobid]['scheduletime']=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid));
43
  update_option('backwpup_jobs',$jobs); //Save Settings
44
+ BackWPupFunctions::joblog($logtime,sprintf(__('Backup Excution time %1s sec.','backwpup'),$jobs[$jobid]['lastruntime']));
45
  //Write backupfile und worktime to log
46
  $wpdb->update( $wpdb->backwpup_logs, array( 'worktime' => $jobs[$jobid]['lastruntime'], 'backupfile' => mysql_real_escape_string($backupfile)), array( 'logtime' => $logtime ));
47
  ob_end_flush();
app/dojob/bevore.php CHANGED
@@ -38,7 +38,7 @@ if (!ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='off' or ini_get(
38
  }
39
 
40
  //Look for and Crate Temp dir and secure
41
- BackWPupFunctions::joblog($logtime,sprintf(__('Temp dir is %1$s.','backwpup'),get_temp_dir().'backwpup'));
42
 
43
  if (!is_dir(BackWPupFunctions::get_temp_dir().'backwpup')) {
44
  if (!mkdir(BackWPupFunctions::get_temp_dir().'backwpup',0777,true)) {
38
  }
39
 
40
  //Look for and Crate Temp dir and secure
41
+ BackWPupFunctions::joblog($logtime,sprintf(__('Temp dir is %1$s.','backwpup'),BackWPupFunctions::get_temp_dir().'backwpup'));
42
 
43
  if (!is_dir(BackWPupFunctions::get_temp_dir().'backwpup')) {
44
  if (!mkdir(BackWPupFunctions::get_temp_dir().'backwpup',0777,true)) {
app/dojob/db.php CHANGED
@@ -1,65 +1,62 @@
1
  <?PHP
2
  BackWPupFunctions::joblog($logtime,__('Run Database Backup...','backwpup'));
3
 
4
- function dump_table($table,$status) {
5
  global $wpdb,$logtime;
6
  $table = str_replace("�", "��", $table); //esc table name
7
 
8
  // create dump
9
- $dump = "\n";
10
- $dump.= "--\n";
11
- $dump.= "-- Table structure for table $table\n";
12
- $dump.= "--\n\n";
13
- $dump.= "DROP TABLE IF EXISTS `" . $table . "`;\n";
14
- $dump.= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
15
- $dump.= "/*!40101 SET character_set_client = latin1 */;\n";
16
  //Dump the table structure
17
- $result=$wpdb->get_row("SHOW CREATE TABLE `".$table."`", ARRAY_A);
18
  if ($sqlerr=mysql_error($wpdb->dbh)) {
19
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
20
  return false;
21
  }
22
- $dump.=$result['Create Table']."\n";
23
- $dump.="/*!40101 SET character_set_client = @saved_cs_client */;\n";
24
- $wpdb->flush();
25
 
26
  //take data of table
27
- $result=$wpdb->get_results("SELECT * FROM `".$table."`", ARRAY_A);
28
  if ($sqlerr=mysql_error($wpdb->dbh)) {
29
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
30
  return false;
31
  }
32
- if (is_array($result)) {
33
- $dump.= "--\n";
34
- $dump.= "-- Dumping data for table $table\n";
35
- $dump.= "--\n\n";
36
- $dump.= "LOCK TABLES `".$table."` WRITE;\n\n";
37
- if ($status['Engine']=='MyISAM')
38
- $dump.= "/*!40000 ALTER TABLE `".$table."` DISABLE KEYS */;\n";
39
- foreach($result as $data) {
40
- $keys = array();
41
- $values = array();
42
- foreach($data as $key => $value) {
43
- $keys[] = "`".str_replace("�", "��", $key)."`"; // Add key to key list
44
-
45
- if($value === NULL) // Make Value NULL to string NULL
46
- $value = "NULL";
47
- elseif($value === "" or $value === false) // if empty or false Value make "" as Value
48
- $value = '""';
49
- elseif(!is_numeric($value)) //is value not numeric esc
50
- $value = "\"".mysql_real_escape_string($value)."\"";
51
 
52
- $values[] = $value;
53
- }
54
- // make data dump
55
- $dump .= "INSERT INTO `".$table."` ( ".implode(", ",$keys)." )\n\tVALUES ( ".implode(", ",$values)." );\n";
56
  }
57
- if ($status['Engine']=='MyISAM')
58
- $dump.= "/*!40000 ALTER TABLE ".$table." ENABLE KEYS */;\n";
59
- $dump.= "UNLOCK TABLES;\n";
60
  }
61
- $wpdb->flush();
62
- return $dump;
 
63
  }
64
 
65
 
@@ -110,8 +107,8 @@ if (sizeof($tables)>0) {
110
  //make table dumps
111
  foreach($tables as $table) {
112
  BackWPupFunctions::joblog($logtime,__('Database table to Backup: ','backwpup').' '.$table);
113
- BackWPupFunctions::needfreememory(($status[$table]['Data_length']+$status[$table]['Index_length'])*2); //get mor memory if needed
114
- fwrite($file, dump_table($table,$status[$table]));
115
  }
116
  //for better import with mysql client
117
  fwrite($file, "\n");
@@ -135,6 +132,7 @@ if (sizeof($tables)>0) {
135
  BackWPupFunctions::joblog($logtime,__('Database backup done!','backwpup'));
136
 
137
  if ($jobs[$jobid]['type']=='DB' and is_file(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')) {
 
138
  BackWPupFunctions::joblog($logtime,__('Database file size:','backwpup').' '.BackWPupFunctions::formatBytes(filesize(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
139
  BackWPupFunctions::joblog($logtime,__('Create Zip file from dump...','backwpup'));
140
  $zipbackupfile = new PclZip($backupfile);
1
  <?PHP
2
  BackWPupFunctions::joblog($logtime,__('Run Database Backup...','backwpup'));
3
 
4
+ function dump_table($table,$status,$file) {
5
  global $wpdb,$logtime;
6
  $table = str_replace("�", "��", $table); //esc table name
7
 
8
  // create dump
9
+ fwrite($file, "\n");
10
+ fwrite($file, "--\n");
11
+ fwrite($file, "-- Table structure for table $table\n");
12
+ fwrite($file, "--\n\n");
13
+ fwrite($file, "DROP TABLE IF EXISTS `" . $table . "`;\n");
14
+ fwrite($file, "/*!40101 SET @saved_cs_client = @@character_set_client */;\n");
15
+ fwrite($file, "/*!40101 SET character_set_client = latin1 */;\n");
16
  //Dump the table structure
17
+ $result=mysql_query("SHOW CREATE TABLE `".$table."`");
18
  if ($sqlerr=mysql_error($wpdb->dbh)) {
19
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
20
  return false;
21
  }
22
+ $tablestruc=mysql_fetch_assoc($result);
23
+ fwrite($file, $tablestruc['Create Table']."\n");
24
+ fwrite($file, "/*!40101 SET character_set_client = @saved_cs_client */;\n");
25
 
26
  //take data of table
27
+ $result=mysql_query("SELECT * FROM `".$table."`");
28
  if ($sqlerr=mysql_error($wpdb->dbh)) {
29
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
30
  return false;
31
  }
32
+
33
+ fwrite($file, "--\n");
34
+ fwrite($file, "-- Dumping data for table $table\n");
35
+ fwrite($file, "--\n\n");
36
+ fwrite($file, "LOCK TABLES `".$table."` WRITE;\n\n");
37
+ if ($status['Engine']=='MyISAM')
38
+ fwrite($file, "/*!40000 ALTER TABLE `".$table."` DISABLE KEYS */;\n");
39
+
40
+ while ($data = mysql_fetch_assoc($result)) {
41
+ $keys = array();
42
+ $values = array();
43
+ foreach($data as $key => $value) {
44
+ $keys[] = "`".str_replace("�", "��", $key)."`"; // Add key to key list
45
+ if($value === NULL) // Make Value NULL to string NULL
46
+ $value = "NULL";
47
+ elseif($value === "" or $value === false) // if empty or false Value make "" as Value
48
+ $value = '""';
49
+ elseif(!is_numeric($value)) //is value not numeric esc
50
+ $value = "\"".mysql_real_escape_string($value)."\"";
51
 
52
+ $values[] = $value;
 
 
 
53
  }
54
+ // make data dump
55
+ fwrite($file, "INSERT INTO `".$table."` ( ".implode(", ",$keys)." )\n\tVALUES ( ".implode(", ",$values)." );\n");
 
56
  }
57
+ if ($status['Engine']=='MyISAM')
58
+ fwrite($file, "/*!40000 ALTER TABLE ".$table." ENABLE KEYS */;\n");
59
+ fwrite($file, "UNLOCK TABLES;\n");
60
  }
61
 
62
 
107
  //make table dumps
108
  foreach($tables as $table) {
109
  BackWPupFunctions::joblog($logtime,__('Database table to Backup: ','backwpup').' '.$table);
110
+ BackWPupFunctions::needfreememory(($status[$table]['Data_length']+$status[$table]['Index_length'])*1.3); //get mor memory if needed
111
+ fwrite($file, dump_table($table,$status[$table],$file));
112
  }
113
  //for better import with mysql client
114
  fwrite($file, "\n");
132
  BackWPupFunctions::joblog($logtime,__('Database backup done!','backwpup'));
133
 
134
  if ($jobs[$jobid]['type']=='DB' and is_file(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')) {
135
+ BackWPupFunctions::needfreememory(8388608); //8MB free memory for zip
136
  BackWPupFunctions::joblog($logtime,__('Database file size:','backwpup').' '.BackWPupFunctions::formatBytes(filesize(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
137
  BackWPupFunctions::joblog($logtime,__('Create Zip file from dump...','backwpup'));
138
  $zipbackupfile = new PclZip($backupfile);
app/dojob/destination-mail.php CHANGED
@@ -1,10 +1,14 @@
1
  <?php
2
  if (!empty($jobs[$jobid]['mailaddress'])) {
 
 
 
 
3
  BackWPupFunctions::joblog($logtime,__('Sendig mail...','backwpup'));
4
  if (is_file($backupfile)) {
5
  if (filesize($backupfile)<20971520) {
6
  $mailfiles[0]=$backupfile;
7
- if (!BackWPupFunctions::needfreememory(filesize($backupfile)*3+33554432)) {
8
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Out of Memory for sending Backup Archive by mail','backwpup'));
9
  unset($mailfiles);
10
  }
@@ -20,7 +24,7 @@ if (!empty($jobs[$jobid]['mailaddress'])) {
20
  if (wp_mail($jobs[$jobid]['mailaddress'],__('BackWPup Job:','backwpup').' '.$jobs[$jobid]['name'],$wpdb->get_var("SELECT log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime),'',$mailfiles)) {
21
  BackWPupFunctions::joblog($logtime,__('Mail send!!!','backwpup'));
22
  } else {
23
- BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not send mail!!!','backwpup'));
24
  }
25
  }
26
  //clean vars
1
  <?php
2
  if (!empty($jobs[$jobid]['mailaddress'])) {
3
+ //maillig method
4
+ add_action('phpmailer_init', array('BackWPupFunctions', 'use_mail_method'));
5
+ global $phpmailer;
6
+
7
  BackWPupFunctions::joblog($logtime,__('Sendig mail...','backwpup'));
8
  if (is_file($backupfile)) {
9
  if (filesize($backupfile)<20971520) {
10
  $mailfiles[0]=$backupfile;
11
+ if (!BackWPupFunctions::needfreememory(filesize($backupfile)*3+50554432)) {
12
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Out of Memory for sending Backup Archive by mail','backwpup'));
13
  unset($mailfiles);
14
  }
24
  if (wp_mail($jobs[$jobid]['mailaddress'],__('BackWPup Job:','backwpup').' '.$jobs[$jobid]['name'],$wpdb->get_var("SELECT log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime),'',$mailfiles)) {
25
  BackWPupFunctions::joblog($logtime,__('Mail send!!!','backwpup'));
26
  } else {
27
+ BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not send mail:','backwpup').' '.$phpmailer->ErrorInfo);
28
  }
29
  }
30
  //clean vars
app/dojob/file.php CHANGED
@@ -11,7 +11,6 @@
11
  return false;
12
  if( ! $levels )
13
  return false;
14
- $files = array();
15
  if ( $dir = @opendir( $folder ) ) {
16
  while (($file = readdir( $dir ) ) !== false ) {
17
  if ( in_array($file, array('.', '..','.svn') ) )
@@ -25,12 +24,10 @@
25
  if (!$backwpup_jobs['backupplugins'] and false !== stripos($folder.'/'.$file,str_replace('\\','/',WP_PLUGIN_DIR)))
26
  continue;
27
  if ( is_dir( $folder . '/' . $file ) ) {
28
- $files2 = backwpup_list_files( $folder . '/' . $file, $levels - 1);
29
- if( $files2 )
30
- $files = array_merge($files, $files2 );
31
  } elseif (is_file( $folder . '/' . $file )) {
32
  if (is_readable($folder . '/' . $file)) {
33
- $files[] = $folder . '/' . $file;
34
  $filezise=filesize($folder . '/' . $file);
35
  $backwpup_allfilezise=$backwpup_allfilezise+$filezise;
36
  BackWPupFunctions::joblog($logtime,__('File to Backup:','backwpup').' '.$folder . '/' . $file.' '.BackWPupFunctions::formatBytes($filezise));
@@ -43,12 +40,12 @@
43
  }
44
  }
45
  @closedir( $dir );
46
- return $files;
47
  }
48
 
49
 
50
  //Make filelist
51
- $backwupu_exclude=array(); $dirinclude=array(); $allfilezise=''; $filelist=array();
52
 
53
  if (!empty($jobs[$jobid]['fileexclude']))
54
  $backwupu_exclude=split(',',$jobs[$jobid]['fileexclude']);
@@ -75,27 +72,26 @@
75
  if (is_array($dirinclude)) {
76
  foreach($dirinclude as $dirincludevalue) {
77
  if (is_dir($dirincludevalue))
78
- $filelist=array_merge(backwpup_list_files(untrailingslashit(str_replace('\\','/',$dirincludevalue))),$filelist);
79
  }
80
  }
81
-
82
 
83
- if (sizeof($filelist)<1) {
84
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('No files to Backup','backwpup'));
85
  unset($filelist); //clean vars
86
  } else {
87
  BackWPupFunctions::joblog($logtime,__('Size off all files:','backwpup').' '.BackWPupFunctions::formatBytes($backwpup_allfilezise));
88
  }
89
 
90
- BackWPupFunctions::needfreememory(33554432);
91
-
92
  //Create Zip File
93
- if (is_array($filelist)) {
 
94
  BackWPupFunctions::joblog($logtime,__('Create Backup Zip file...','backwpup'));
95
  $zipbackupfile = new PclZip($backupfile);
96
  if (0==$zipbackupfile -> create($filelist,PCLZIP_OPT_REMOVE_PATH,str_replace('\\','/',ABSPATH),PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
97
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
98
  }
 
99
  if ($jobs[$jobid]['type']=='DB+FILE') {
100
  BackWPupFunctions::joblog($logtime,__('Database file size:','backwpup').' '.BackWPupFunctions::formatBytes(filesize(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
101
  BackWPupFunctions::joblog($logtime,__('Add Database dump to Backup Zip file...','backwpup'));
@@ -103,9 +99,7 @@
103
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create Add Database dump:','backwpup').' '.$zipbackupfile->errorInfo(true));
104
  }
105
  }
106
- //clean vars
107
  unset($zipbackupfile);
108
- unset($filelist);
109
  BackWPupFunctions::joblog($logtime,__('Backup Zip file create done!','backwpup'));
110
  }
111
 
11
  return false;
12
  if( ! $levels )
13
  return false;
 
14
  if ( $dir = @opendir( $folder ) ) {
15
  while (($file = readdir( $dir ) ) !== false ) {
16
  if ( in_array($file, array('.', '..','.svn') ) )
24
  if (!$backwpup_jobs['backupplugins'] and false !== stripos($folder.'/'.$file,str_replace('\\','/',WP_PLUGIN_DIR)))
25
  continue;
26
  if ( is_dir( $folder . '/' . $file ) ) {
27
+ $files .= ",".backwpup_list_files( $folder . '/' . $file, $levels - 1);
 
 
28
  } elseif (is_file( $folder . '/' . $file )) {
29
  if (is_readable($folder . '/' . $file)) {
30
+ $files.=",". $folder . '/' . $file;
31
  $filezise=filesize($folder . '/' . $file);
32
  $backwpup_allfilezise=$backwpup_allfilezise+$filezise;
33
  BackWPupFunctions::joblog($logtime,__('File to Backup:','backwpup').' '.$folder . '/' . $file.' '.BackWPupFunctions::formatBytes($filezise));
40
  }
41
  }
42
  @closedir( $dir );
43
+ return str_replace(',,',',',$files);;
44
  }
45
 
46
 
47
  //Make filelist
48
+ $backwupu_exclude=array(); $dirinclude=array(); $allfilezise=''; $filelist='';
49
 
50
  if (!empty($jobs[$jobid]['fileexclude']))
51
  $backwupu_exclude=split(',',$jobs[$jobid]['fileexclude']);
72
  if (is_array($dirinclude)) {
73
  foreach($dirinclude as $dirincludevalue) {
74
  if (is_dir($dirincludevalue))
75
+ $filelist .=",".backwpup_list_files(untrailingslashit(str_replace('\\','/',$dirincludevalue)));
76
  }
77
  }
 
78
 
79
+ if (empty($filelist)) {
80
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('No files to Backup','backwpup'));
81
  unset($filelist); //clean vars
82
  } else {
83
  BackWPupFunctions::joblog($logtime,__('Size off all files:','backwpup').' '.BackWPupFunctions::formatBytes($backwpup_allfilezise));
84
  }
85
 
 
 
86
  //Create Zip File
87
+ if (!empty($filelist)) {
88
+ BackWPupFunctions::needfreememory(8388608); //8MB free memory for zip
89
  BackWPupFunctions::joblog($logtime,__('Create Backup Zip file...','backwpup'));
90
  $zipbackupfile = new PclZip($backupfile);
91
  if (0==$zipbackupfile -> create($filelist,PCLZIP_OPT_REMOVE_PATH,str_replace('\\','/',ABSPATH),PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
92
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
93
  }
94
+ unset($filelist);
95
  if ($jobs[$jobid]['type']=='DB+FILE') {
96
  BackWPupFunctions::joblog($logtime,__('Database file size:','backwpup').' '.BackWPupFunctions::formatBytes(filesize(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
97
  BackWPupFunctions::joblog($logtime,__('Add Database dump to Backup Zip file...','backwpup'));
99
  BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create Add Database dump:','backwpup').' '.$zipbackupfile->errorInfo(true));
100
  }
101
  }
 
102
  unset($zipbackupfile);
 
103
  BackWPupFunctions::joblog($logtime,__('Backup Zip file create done!','backwpup'));
104
  }
105
 
app/functions.php CHANGED
@@ -306,14 +306,13 @@ class BackWPupFunctions {
306
  //Make Log File for Jobs.
307
  function joblog($logtime,$entry) {
308
  global $wpdb;
309
- $log=$wpdb->get_row("SELECT error,warning,log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime, ARRAY_A);
310
  if (substr($entry,0,strlen(__('ERROR:','backwpup')))==__('ERROR:','backwpup'))
311
- $log['error']=$log['error']+1;
312
  if (substr($entry,0,strlen(__('WARNING:','backwpup')))==__('WARNING:','backwpup'))
313
- $log['warning']=$log['warning']+1;
314
- $wpdb->update( $wpdb->backwpup_logs, array( 'error' => $log['error'], 'warning' => $log['warning'], 'log' => $log['log'].date('Y-m-d H:i:s').": ".$entry."\n" ), array( 'logtime' => $logtime ));
315
- echo date('Y-m-d H:i.s').": ".$entry."\n";
316
- $wpdb->flush();
317
  flush();
318
  ob_flush();
319
  }
@@ -410,6 +409,31 @@ class BackWPupFunctions {
410
  wp_add_dashboard_widget( 'backwpup_dashboard_widget', 'BackWPup', array ('BackWPupFunctions', 'dashboard_output') );
411
  }
412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
413
  // add all action and so on only if plugin loaded.
414
  function init() {
415
  //add Menu
@@ -422,7 +446,7 @@ class BackWPupFunctions {
422
  //Actions for Cron job
423
  add_action('backwpup_cron', array('BackWPupFunctions', 'dojob'));
424
  //add Dashboard widget
425
- add_action( 'wp_dashboard_setup', array ('BackWPupFunctions', 'add_dashboard') );
426
  }
427
  }
428
 
306
  //Make Log File for Jobs.
307
  function joblog($logtime,$entry) {
308
  global $wpdb;
309
+ $errors=0;$warnings=0;
310
  if (substr($entry,0,strlen(__('ERROR:','backwpup')))==__('ERROR:','backwpup'))
311
+ $errors=1;
312
  if (substr($entry,0,strlen(__('WARNING:','backwpup')))==__('WARNING:','backwpup'))
313
+ $warnings=1;
314
+ mysql_query("UPDATE ".$wpdb->backwpup_logs." SET error=error+".$errors.", warning=warning+".$warnings.", log=concat(log,'".mysql_real_escape_string(date('Y-m-d H:i:s').": ".$entry."\n")."') WHERE logtime=".$logtime);
315
+ echo date('Y-m-d H:i:s').": ".$entry."\n";
 
316
  flush();
317
  ob_flush();
318
  }
409
  wp_add_dashboard_widget( 'backwpup_dashboard_widget', 'BackWPup', array ('BackWPupFunctions', 'dashboard_output') );
410
  }
411
 
412
+ //Sed mail send Method
413
+ function use_mail_method() {
414
+ global $phpmailer;
415
+ $cfg=get_option('backwpup'); //Load Settings
416
+ if ($cfg['mailmethod']=="SMTP") {
417
+ $smtpport=25;
418
+ $smtphost=$cfg['mailhost'];
419
+ if (false !== strpos($cfg['mailhost'],':')) //look for port
420
+ list($smtphost,$smtpport)=split(':',$cfg['mailhost'],2);
421
+ $phpmailer->Host=$smtphost;
422
+ $phpmailer->Port=$smtpport;
423
+ $phpmailer->SMTPSecure=$cfg['mailsecure'];
424
+ $phpmailer->Username=$cfg['mailuser'];
425
+ $phpmailer->Password=$cfg['mailpass'];
426
+ if (!empty($cfg['mailuser']) and !empty($cfg['mailpass']))
427
+ $phpmailer->SMTPAuth=true;
428
+ $phpmailer->IsSMTP();
429
+ } elseif ($cfg['mailmethod']=="Sendmail") {
430
+ $phpmailer->Sendmail=$cfg['mailsendmail'];
431
+ $phpmailer->IsSendmail();
432
+ } else {
433
+ $phpmailer->IsMail();
434
+ }
435
+ }
436
+
437
  // add all action and so on only if plugin loaded.
438
  function init() {
439
  //add Menu
446
  //Actions for Cron job
447
  add_action('backwpup_cron', array('BackWPupFunctions', 'dojob'));
448
  //add Dashboard widget
449
+ add_action('wp_dashboard_setup', array('BackWPupFunctions', 'add_dashboard'));
450
  }
451
  }
452
 
app/options-edit.php CHANGED
@@ -172,8 +172,8 @@ _e('Oldest files will deletet first.','backwpup');
172
  <th scope="row"><label for="mailaddress"><?PHP _e('Place Backup to FTP Server:','backwpup'); ?></label></th>
173
  <td>
174
  <span class="description"><?PHP _e('Ftp Hostname:','backwpup'); ?></span><input name="ftphost" type="text" value="<?PHP echo $jobs[$jobid]['ftphost'];?>" class="regular-text" /><br />
175
- <span class="description"><?PHP _e('Ftp Username:','backwpup'); ?></span><input name="ftpuser" type="text" value="<?PHP echo $jobs[$jobid]['ftpuser'];?>" class="user" size="10" /><br />
176
- <span class="description"><?PHP _e('Ftp Password:','backwpup'); ?></span><input name="ftppass" type="password" value="<?PHP echo $jobs[$jobid]['ftppass'];?>" class="password" size="10" /><br />
177
  <span class="description"><?PHP _e('Ftp directory:','backwpup'); ?></span><input name="ftpdir" type="text" value="<?PHP echo $jobs[$jobid]['ftpdir'];?>" class="regular-text" /><br />
178
  <span class="description"><?PHP _e('Max Backup fieles on ftp:','backwpup'); ?></span>
179
  <?PHP
172
  <th scope="row"><label for="mailaddress"><?PHP _e('Place Backup to FTP Server:','backwpup'); ?></label></th>
173
  <td>
174
  <span class="description"><?PHP _e('Ftp Hostname:','backwpup'); ?></span><input name="ftphost" type="text" value="<?PHP echo $jobs[$jobid]['ftphost'];?>" class="regular-text" /><br />
175
+ <span class="description"><?PHP _e('Ftp Username:','backwpup'); ?></span><input name="ftpuser" type="text" value="<?PHP echo $jobs[$jobid]['ftpuser'];?>" class="user" /><br />
176
+ <span class="description"><?PHP _e('Ftp Password:','backwpup'); ?></span><input name="ftppass" type="password" value="<?PHP echo $jobs[$jobid]['ftppass'];?>" class="password" /><br />
177
  <span class="description"><?PHP _e('Ftp directory:','backwpup'); ?></span><input name="ftpdir" type="text" value="<?PHP echo $jobs[$jobid]['ftpdir'];?>" class="regular-text" /><br />
178
  <span class="description"><?PHP _e('Max Backup fieles on ftp:','backwpup'); ?></span>
179
  <?PHP
app/options-save.php CHANGED
@@ -36,7 +36,12 @@ class BackWPupOptions {
36
 
37
  function config() {
38
  $cfg=get_option('backwpup'); //Load Settings
39
-
 
 
 
 
 
40
  update_option('backwpup',$cfg); //Save Settings
41
  }
42
 
36
 
37
  function config() {
38
  $cfg=get_option('backwpup'); //Load Settings
39
+ $cfg['mailmethod']=$_POST['mailmethod'];
40
+ $cfg['mailsendmail']=str_replace('\\','/',stripslashes($_POST['mailsendmail']));
41
+ $cfg['mailsecure']=$_POST['mailsecure'];
42
+ $cfg['mailhost']=$_POST['mailhost'];
43
+ $cfg['mailuser']=$_POST['mailuser'];
44
+ $cfg['mailpass']=$_POST['mailpass'];
45
  update_option('backwpup',$cfg); //Save Settings
46
  }
47
 
app/options-settings.php CHANGED
@@ -23,6 +23,37 @@
23
  </td>
24
  </tr>
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  </table>
27
 
28
  <p class="submit">
23
  </td>
24
  </tr>
25
 
26
+ <tr valign="top">
27
+ <th scope="row"><label for="mailaddress"><?PHP _e('Mail Send:','backwpup'); ?></label></th>
28
+ <td>
29
+ <span class="description"><?PHP _e('Send mail method:','backwpup'); ?></span>
30
+ <?PHP
31
+ echo '<select name="mailmethod">';
32
+ echo '<option value="mail"'.selected('mail',$cfg['mailmethod'],false).'>'.__('PHP: mail()','backwpup').'</option>';
33
+ echo '<option value="Sendmail"'.selected('Sendmail',$cfg['mailmethod'],false).'>'.__('Sendmail','backwpup').'</option>';
34
+ echo '<option value="SMTP"'.selected('SMTP',$cfg['mailmethod'],false).'>'.__('SMTP','backwpup').'</option>';
35
+ echo '</select>';
36
+ if (empty($cfg['mailsendmail'])) {
37
+ $cfg['mailsendmail']=substr(ini_get('sendmail_path'),0,strpos(ini_get('sendmail_path'),' -'));
38
+ }
39
+ ?><br />
40
+ <span class="description"><?PHP _e('Sendmail Path:','backwpup'); ?></span><input name="mailhost" type="text" value="<?PHP echo $cfg['mailsendmail'];?>" class="regular-text" /><br />
41
+ <span class="description"><?PHP _e('SMTP Hostname:','backwpup'); ?></span><input name="mailhost" type="text" value="<?PHP echo $cfg['mailhost'];?>" class="regular-text" /><br />
42
+ <span class="description"><?PHP _e('SMTP Secure Connection:','backwpup'); ?></span><?PHP
43
+ echo '<select name="mailsecure">';
44
+ echo '<option value=""'.selected('',$cfg['mailsecure'],false).'>'.__('none','backwpup').'</option>';
45
+ echo '<option value="ssl"'.selected('ssl',$cfg['mailsecure'],false).'>SSL</option>';
46
+ echo '<option value="tls"'.selected('tls',$cfg['mailsecure'],false).'>TLS</option>';
47
+ echo '</select>';
48
+ if (!empty($cfg['mailsendmail']))
49
+ $cfg['mailsendmail']='/usr/sbin/sendmail';
50
+ ?><br />
51
+ <span class="description"><?PHP _e('SMTP Username:','backwpup'); ?></span><input name="mailuser" type="text" value="<?PHP echo $cfg['mailuser'];?>" class="user" /><br />
52
+ <span class="description"><?PHP _e('SMTP Password:','backwpup'); ?></span><input name="mailpass" type="password" value="<?PHP echo $cfg['mailpass'];?>" class="password" /><br />
53
+ </td>
54
+ </tr>
55
+
56
+
57
  </table>
58
 
59
  <p class="submit">
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: 0.6.0
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
@@ -32,7 +32,7 @@ Domain Path: /lang/
32
  //Set plugin dirname
33
  define('BACKWPUP_PLUGIN_DIR', dirname(plugin_basename(__FILE__)));
34
  //Set Plugin Version
35
- define('BACKWPUP_VERSION', '0.6.0');
36
  //BackWPup Log Table Name
37
  global $wpdb;
38
  $wpdb->backwpup_logs = $wpdb->prefix.'backwpup_logs';
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: 0.6.1
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
32
  //Set plugin dirname
33
  define('BACKWPUP_PLUGIN_DIR', dirname(plugin_basename(__FILE__)));
34
  //Set Plugin Version
35
+ define('BACKWPUP_VERSION', '0.6.1');
36
  //BackWPup Log Table Name
37
  global $wpdb;
38
  $wpdb->backwpup_logs = $wpdb->prefix.'backwpup_logs';
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === BackWPup ===
2
  Contributors: danielhuesken
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=daniel%40huesken-net%2ede&item_name=Daniel%20Huesken%20Plugin%20Donation&item_number=BackWPup&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8
4
- Tags: backup, admin, file, Database, mysql,
5
  Requires at least: 2.8
6
  Tested up to: 2.8.1
7
- Stable tag: 0.6.0
8
 
9
  Backup and more of your WordPress Blog Database and Files
10
 
@@ -48,7 +48,12 @@ You must import the Database Dump with Charaktercoding:latin1
48
  1. Job Page
49
 
50
  == Changelog ==
51
- = 0.6.0 dev.=
 
 
 
 
 
52
  * Add Dashboard Widget
53
  * Add Database Check
54
  * Add Backup file transfer to FTP Server
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&currency_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8
4
+ Tags: backup, admin, file, Database, mysql, cron
5
  Requires at least: 2.8
6
  Tested up to: 2.8.1
7
+ Stable tag: 0.6.1
8
 
9
  Backup and more of your WordPress Blog Database and Files
10
 
48
  1. Job Page
49
 
50
  == Changelog ==
51
+ = 0.6.1 =
52
+ * Added setting for Send Mail type.
53
+ * Optimize Memory usage again
54
+ * Fixed Bug that cron not work
55
+
56
+ = 0.6.0 =
57
  * Add Dashboard Widget
58
  * Add Database Check
59
  * Add Backup file transfer to FTP Server