Version Description
- use ftp_row for login and other commands
- Add option to send only email on erros
- Internal struckture changes
- Add option to diesable WP-Cron and use Hoster cron
- bug fixes
Download this release
Release Info
| Developer | danielhuesken |
| Plugin | |
| Version | 0.6.3 |
| Comparing to | |
| See all releases | |
Code changes from version 0.6.2 to 0.6.3
- app/dojob/after.php +8 -9
- app/dojob/bevore.php +22 -20
- app/dojob/check.php +7 -7
- app/dojob/db.php +20 -20
- app/dojob/destination-ftp.php +62 -29
- app/dojob/destination-mail.php +17 -11
- app/dojob/file.php +17 -17
- app/dojob/optimize.php +5 -5
- app/functions.php +44 -107
- app/options-edit.php +15 -14
- app/options-logs.php +2 -2
- app/options-runnow.php +1 -1
- app/options-save.php +134 -105
- app/options-settings.php +11 -1
- app/options.php +1 -1
- backwpup.php +6 -7
- readme.txt +9 -2
app/dojob/after.php
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?PHP
|
| 2 |
//Delete old Logs/Backupfiles
|
| 3 |
if (!empty($jobs[$jobid]['maxbackups'])) {
|
| 4 |
-
|
| 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)) {
|
|
@@ -17,20 +17,20 @@ if (!empty($jobs[$jobid]['maxbackups'])) {
|
|
| 17 |
}
|
| 18 |
}
|
| 19 |
if ($countdelbackups>0)
|
| 20 |
-
|
| 21 |
if ($countdellogs>0)
|
| 22 |
-
|
| 23 |
}
|
| 24 |
|
| 25 |
if (is_file($backupfile)) {
|
| 26 |
-
|
| 27 |
}
|
| 28 |
|
| 29 |
-
if (is_file(
|
| 30 |
-
unlink(
|
| 31 |
}
|
| 32 |
|
| 33 |
-
if (empty($jobs[$jobid]['backupdir']) and (dirname($backupfile)!=
|
| 34 |
unlink($backupfile);
|
| 35 |
unset($backupfile);
|
| 36 |
}
|
|
@@ -41,8 +41,7 @@ $jobs[$jobid]['lastrun']=$jobs[$jobid]['starttime'];
|
|
| 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 |
-
|
| 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();
|
| 48 |
?>
|
| 1 |
<?PHP
|
| 2 |
//Delete old Logs/Backupfiles
|
| 3 |
if (!empty($jobs[$jobid]['maxbackups'])) {
|
| 4 |
+
backwpup_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)) {
|
| 17 |
}
|
| 18 |
}
|
| 19 |
if ($countdelbackups>0)
|
| 20 |
+
backwpup_joblog($logtime,$countdelbackups.' '.__('old backup files deleted!!!','backwpup'));
|
| 21 |
if ($countdellogs>0)
|
| 22 |
+
backwpup_joblog($logtime,$countdellogs.' '.__('old logs deleted!!!','backwpup'));
|
| 23 |
}
|
| 24 |
|
| 25 |
if (is_file($backupfile)) {
|
| 26 |
+
backwpup_joblog($logtime,sprintf(__('Backup zip filesize is %1s','backwpup'),backwpup_formatBytes(filesize($backupfile))));
|
| 27 |
}
|
| 28 |
|
| 29 |
+
if (is_file(get_temp_dir().'backwpup/'.DB_NAME.'.sql') ) { //delete sql temp file
|
| 30 |
+
unlink(get_temp_dir().'backwpup/'.DB_NAME.'.sql');
|
| 31 |
}
|
| 32 |
|
| 33 |
+
if (empty($jobs[$jobid]['backupdir']) and (dirname($backupfile)!=get_temp_dir().'backwpup') and is_file($backupfile) ) { //delete backup file in temp dir
|
| 34 |
unlink($backupfile);
|
| 35 |
unset($backupfile);
|
| 36 |
}
|
| 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 |
+
backwpup_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 |
?>
|
app/dojob/bevore.php
CHANGED
|
@@ -1,10 +1,12 @@
|
|
| 1 |
<?php
|
| 2 |
global $logtime;
|
| 3 |
ignore_user_abort(true);
|
|
|
|
| 4 |
ob_start();
|
| 5 |
-
|
|
|
|
| 6 |
|
| 7 |
-
define( 'PCLZIP_TEMPORARY_DIR',
|
| 8 |
$cfg=get_option('backwpup');
|
| 9 |
$jobs=get_option('backwpup_jobs');
|
| 10 |
$logtime=time();
|
|
@@ -16,7 +18,7 @@ if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB+FILE' or $jobs[$
|
|
| 16 |
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 17 |
$backupfile=$jobs[$jobid]['backupdir'].'/backwpup_'.$jobid.'_'.date('Y-m-d_H-i-s',$jobs[$jobid]['starttime']).'.zip';
|
| 18 |
} else {
|
| 19 |
-
$backupfile=
|
| 20 |
}
|
| 21 |
} else {
|
| 22 |
$backupfile='';
|
|
@@ -31,43 +33,43 @@ $wpdb->insert( $wpdb->backwpup_logs, array( 'logtime' => $logtime, 'jobid' => $j
|
|
| 31 |
|
| 32 |
|
| 33 |
if (!ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='off' or ini_get('safe_mode')=='0') {
|
| 34 |
-
if (empty($cfg['maxexecutiontime']))
|
| 35 |
$cfg['maxexecutiontime']=300;
|
| 36 |
set_time_limit($cfg['maxexecutiontime']); //300 is most webserver time limit.
|
| 37 |
} else {
|
| 38 |
-
|
| 39 |
}
|
| 40 |
|
| 41 |
if (!function_exists('memory_get_usage')) {
|
| 42 |
-
if (empty($cfg['memorylimit']))
|
| 43 |
$cfg['memorylimit']='128M';
|
| 44 |
ini_set('memory_limit', $cfg['memorylimit']);
|
| 45 |
-
|
| 46 |
}
|
| 47 |
|
| 48 |
//Look for and Crate Temp dir and secure
|
| 49 |
-
|
| 50 |
|
| 51 |
-
if (!is_dir(
|
| 52 |
-
if (!mkdir(
|
| 53 |
-
|
| 54 |
require_once('after.php');
|
| 55 |
return false;
|
| 56 |
}
|
| 57 |
}
|
| 58 |
-
if (!is_writeable(
|
| 59 |
-
|
| 60 |
require_once('after.php');
|
| 61 |
return false;
|
| 62 |
}
|
| 63 |
-
if (!is_file(
|
| 64 |
-
if($file = @fopen(
|
| 65 |
fwrite($file, "Order allow,deny\ndeny from all");
|
| 66 |
fclose($file);
|
| 67 |
}
|
| 68 |
}
|
| 69 |
-
if (!is_file(
|
| 70 |
-
if($file = @fopen(
|
| 71 |
fwrite($file,"\n");
|
| 72 |
fclose($file);
|
| 73 |
}
|
|
@@ -78,13 +80,13 @@ if (!empty($backupfile)) {
|
|
| 78 |
//Look for and Crate Backup dir and secure
|
| 79 |
if (!is_dir($jobs[$jobid]['backupdir'])) {
|
| 80 |
if (!mkdir($jobs[$jobid]['backupdir'],0777,true)) {
|
| 81 |
-
|
| 82 |
require_once('after.php');
|
| 83 |
return false;
|
| 84 |
}
|
| 85 |
}
|
| 86 |
if (!is_writeable($jobs[$jobid]['backupdir'])) {
|
| 87 |
-
|
| 88 |
require_once('after.php');
|
| 89 |
return false;
|
| 90 |
}
|
|
@@ -100,7 +102,7 @@ if (!empty($backupfile)) {
|
|
| 100 |
fclose($file);
|
| 101 |
}
|
| 102 |
}
|
| 103 |
-
|
| 104 |
}
|
| 105 |
|
| 106 |
|
| 1 |
<?php
|
| 2 |
global $logtime;
|
| 3 |
ignore_user_abort(true);
|
| 4 |
+
// flush any buffers and send the headers
|
| 5 |
ob_start();
|
| 6 |
+
while (@ob_end_flush());
|
| 7 |
+
flush();
|
| 8 |
|
| 9 |
+
define( 'PCLZIP_TEMPORARY_DIR', get_temp_dir().'backwpup/' );
|
| 10 |
$cfg=get_option('backwpup');
|
| 11 |
$jobs=get_option('backwpup_jobs');
|
| 12 |
$logtime=time();
|
| 18 |
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 19 |
$backupfile=$jobs[$jobid]['backupdir'].'/backwpup_'.$jobid.'_'.date('Y-m-d_H-i-s',$jobs[$jobid]['starttime']).'.zip';
|
| 20 |
} else {
|
| 21 |
+
$backupfile=get_temp_dir().'backwpup/backwpup_'.$jobid.'_'.date('Y-m-d_H-i-s',$jobs[$jobid]['starttime']).'.zip';
|
| 22 |
}
|
| 23 |
} else {
|
| 24 |
$backupfile='';
|
| 33 |
|
| 34 |
|
| 35 |
if (!ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='off' or ini_get('safe_mode')=='0') {
|
| 36 |
+
if (empty($cfg['maxexecutiontime']))
|
| 37 |
$cfg['maxexecutiontime']=300;
|
| 38 |
set_time_limit($cfg['maxexecutiontime']); //300 is most webserver time limit.
|
| 39 |
} else {
|
| 40 |
+
backwpup_joblog($logtime,__('WARNING:','backwpup').' '.sprintf(__('PHP Safe Mode is on!!! Max exec time is %1$s sec.','backwpup'),ini_get('max_execution_time')));
|
| 41 |
}
|
| 42 |
|
| 43 |
if (!function_exists('memory_get_usage')) {
|
| 44 |
+
if (empty($cfg['memorylimit']))
|
| 45 |
$cfg['memorylimit']='128M';
|
| 46 |
ini_set('memory_limit', $cfg['memorylimit']);
|
| 47 |
+
backwpup_joblog($logtime,__('WARNING:','backwpup').' '.sprintf(__('Memory limit set to %1$s ,beause can not use PHP: memory_get_usage() function.','backwpup'),ini_get('memory_limit')));
|
| 48 |
}
|
| 49 |
|
| 50 |
//Look for and Crate Temp dir and secure
|
| 51 |
+
backwpup_joblog($logtime,sprintf(__('Temp dir is %1$s.','backwpup'),get_temp_dir().'backwpup'));
|
| 52 |
|
| 53 |
+
if (!is_dir(get_temp_dir().'backwpup')) {
|
| 54 |
+
if (!mkdir(get_temp_dir().'backwpup',0777,true)) {
|
| 55 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Temp dir','backwpup'));
|
| 56 |
require_once('after.php');
|
| 57 |
return false;
|
| 58 |
}
|
| 59 |
}
|
| 60 |
+
if (!is_writeable(get_temp_dir().'backwpup')) {
|
| 61 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not write to Temp dir','backwpup'));
|
| 62 |
require_once('after.php');
|
| 63 |
return false;
|
| 64 |
}
|
| 65 |
+
if (!is_file(get_temp_dir().'backwpup/.htaccess')) {
|
| 66 |
+
if($file = @fopen(get_temp_dir().'backwpup/.htaccess', 'w')) {
|
| 67 |
fwrite($file, "Order allow,deny\ndeny from all");
|
| 68 |
fclose($file);
|
| 69 |
}
|
| 70 |
}
|
| 71 |
+
if (!is_file(get_temp_dir().'backwpup/index.html')) {
|
| 72 |
+
if($file = @fopen(get_temp_dir().'backwpup/index.html', 'w')) {
|
| 73 |
fwrite($file,"\n");
|
| 74 |
fclose($file);
|
| 75 |
}
|
| 80 |
//Look for and Crate Backup dir and secure
|
| 81 |
if (!is_dir($jobs[$jobid]['backupdir'])) {
|
| 82 |
if (!mkdir($jobs[$jobid]['backupdir'],0777,true)) {
|
| 83 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Backup dir','backwpup'));
|
| 84 |
require_once('after.php');
|
| 85 |
return false;
|
| 86 |
}
|
| 87 |
}
|
| 88 |
if (!is_writeable($jobs[$jobid]['backupdir'])) {
|
| 89 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not write to Backup dir','backwpup'));
|
| 90 |
require_once('after.php');
|
| 91 |
return false;
|
| 92 |
}
|
| 102 |
fclose($file);
|
| 103 |
}
|
| 104 |
}
|
| 105 |
+
backwpup_joblog($logtime,__('Backup zip file save to:','backwpup').' '.$backupfile);
|
| 106 |
}
|
| 107 |
|
| 108 |
|
app/dojob/check.php
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
<?PHP
|
| 2 |
//Optimize SQL Table
|
| 3 |
-
|
| 4 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 5 |
|
| 6 |
if (is_array($jobs[$jobid]['dbexclude'])) {
|
|
@@ -14,20 +14,20 @@ if (sizeof($tables)>0) {
|
|
| 14 |
foreach ($tables as $table) {
|
| 15 |
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 16 |
$check=$wpdb->get_row('CHECK TABLE `'.$table.'` MEDIUM', ARRAY_A);
|
| 17 |
-
|
| 18 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 19 |
-
|
| 20 |
if ($check['Msg_type']=='error') {
|
| 21 |
$repair=$wpdb->get_row('REPAIR TABLE `'.$table.'`', ARRAY_A);
|
| 22 |
-
|
| 23 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 24 |
-
|
| 25 |
}
|
| 26 |
}
|
| 27 |
}
|
| 28 |
$wpdb->flush();
|
| 29 |
-
|
| 30 |
} else {
|
| 31 |
-
|
| 32 |
}
|
| 33 |
?>
|
| 1 |
<?PHP
|
| 2 |
//Optimize SQL Table
|
| 3 |
+
backwpup_joblog($logtime,__('Run Database check...','backwpup'));
|
| 4 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 5 |
|
| 6 |
if (is_array($jobs[$jobid]['dbexclude'])) {
|
| 14 |
foreach ($tables as $table) {
|
| 15 |
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 16 |
$check=$wpdb->get_row('CHECK TABLE `'.$table.'` MEDIUM', ARRAY_A);
|
| 17 |
+
backwpup_joblog($logtime,__(strtoupper($check['Msg_type']).':','backwpup').' '.sprintf(__('Result of table check for %1$s is: %2$s','backwpup'), $table, $check['Msg_text']));
|
| 18 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 19 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 20 |
if ($check['Msg_type']=='error') {
|
| 21 |
$repair=$wpdb->get_row('REPAIR TABLE `'.$table.'`', ARRAY_A);
|
| 22 |
+
backwpup_joblog($logtime,__(strtoupper($repair['Msg_type']).':','backwpup').' '.sprintf(__('Result of table repair for %1$s is: %2$s ','backwpup'), $table, $repair['Msg_text']));
|
| 23 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 24 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 25 |
}
|
| 26 |
}
|
| 27 |
}
|
| 28 |
$wpdb->flush();
|
| 29 |
+
backwpup_joblog($logtime,__('Database check done!','backwpup'));
|
| 30 |
} else {
|
| 31 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('No Tables to check','backwpup'));
|
| 32 |
}
|
| 33 |
?>
|
app/dojob/db.php
CHANGED
|
@@ -1,7 +1,8 @@
|
|
| 1 |
<?PHP
|
| 2 |
-
|
| 3 |
|
| 4 |
-
|
|
|
|
| 5 |
global $wpdb,$logtime;
|
| 6 |
$table = str_replace("�", "��", $table); //esc table name
|
| 7 |
|
|
@@ -16,7 +17,7 @@ function dump_table($table,$status,$file) {
|
|
| 16 |
//Dump the table structure
|
| 17 |
$result=mysql_query("SHOW CREATE TABLE `".$table."`");
|
| 18 |
if ($sqlerr=mysql_error($wpdb->dbh)) {
|
| 19 |
-
|
| 20 |
return false;
|
| 21 |
}
|
| 22 |
$tablestruc=mysql_fetch_assoc($result);
|
|
@@ -26,7 +27,7 @@ function dump_table($table,$status,$file) {
|
|
| 26 |
//take data of table
|
| 27 |
$result=mysql_query("SELECT * FROM `".$table."`");
|
| 28 |
if ($sqlerr=mysql_error($wpdb->dbh)) {
|
| 29 |
-
|
| 30 |
return false;
|
| 31 |
}
|
| 32 |
|
|
@@ -60,7 +61,6 @@ function dump_table($table,$status,$file) {
|
|
| 60 |
}
|
| 61 |
|
| 62 |
|
| 63 |
-
|
| 64 |
//Tables to backup
|
| 65 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 66 |
$jobs[$jobid]['dbexclude'][]=$wpdb->backwpup_logs; //Exclude log table
|
|
@@ -74,12 +74,12 @@ if (is_array($jobs[$jobid]['dbexclude'])) {
|
|
| 74 |
if (sizeof($tables)>0) {
|
| 75 |
$result=$wpdb->get_results("SHOW TABLE STATUS FROM `".DB_NAME."`;", ARRAY_A); //get table status
|
| 76 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 77 |
-
|
| 78 |
foreach($result as $statusdata) {
|
| 79 |
$status[$statusdata['Name']]=$statusdata;
|
| 80 |
}
|
| 81 |
|
| 82 |
-
if ($file = @fopen(
|
| 83 |
fwrite($file, "-- ---------------------------------------------------------\n");
|
| 84 |
fwrite($file, "-- Dump with BackWPup ver.: ".BACKWPUP_VERSION."\n");
|
| 85 |
fwrite($file, "-- Plugin for WordPress by Daniel Huesken\n");
|
|
@@ -106,9 +106,9 @@ if (sizeof($tables)>0) {
|
|
| 106 |
fwrite($file, "/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;\n\n");
|
| 107 |
//make table dumps
|
| 108 |
foreach($tables as $table) {
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
fwrite($file,
|
| 112 |
}
|
| 113 |
//for better import with mysql client
|
| 114 |
fwrite($file, "\n");
|
|
@@ -122,25 +122,25 @@ if (sizeof($tables)>0) {
|
|
| 122 |
fwrite($file, "/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n");
|
| 123 |
fclose($file);
|
| 124 |
} else {
|
| 125 |
-
|
| 126 |
}
|
| 127 |
} else {
|
| 128 |
-
|
| 129 |
}
|
| 130 |
|
| 131 |
|
| 132 |
-
|
| 133 |
|
| 134 |
-
if ($jobs[$jobid]['type']=='DB' and is_file(
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
$zipbackupfile = new PclZip($backupfile);
|
| 139 |
-
if (0==$zipbackupfile -> create(
|
| 140 |
-
|
| 141 |
$joberror=true;
|
| 142 |
}
|
| 143 |
-
|
| 144 |
}
|
| 145 |
//clean vars
|
| 146 |
unset($tables);
|
| 1 |
<?PHP
|
| 2 |
+
backwpup_joblog($logtime,__('Run Database Backup...','backwpup'));
|
| 3 |
|
| 4 |
+
|
| 5 |
+
function backwpup_dump_table($table,$status,$file) {
|
| 6 |
global $wpdb,$logtime;
|
| 7 |
$table = str_replace("�", "��", $table); //esc table name
|
| 8 |
|
| 17 |
//Dump the table structure
|
| 18 |
$result=mysql_query("SHOW CREATE TABLE `".$table."`");
|
| 19 |
if ($sqlerr=mysql_error($wpdb->dbh)) {
|
| 20 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 21 |
return false;
|
| 22 |
}
|
| 23 |
$tablestruc=mysql_fetch_assoc($result);
|
| 27 |
//take data of table
|
| 28 |
$result=mysql_query("SELECT * FROM `".$table."`");
|
| 29 |
if ($sqlerr=mysql_error($wpdb->dbh)) {
|
| 30 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 31 |
return false;
|
| 32 |
}
|
| 33 |
|
| 61 |
}
|
| 62 |
|
| 63 |
|
|
|
|
| 64 |
//Tables to backup
|
| 65 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 66 |
$jobs[$jobid]['dbexclude'][]=$wpdb->backwpup_logs; //Exclude log table
|
| 74 |
if (sizeof($tables)>0) {
|
| 75 |
$result=$wpdb->get_results("SHOW TABLE STATUS FROM `".DB_NAME."`;", ARRAY_A); //get table status
|
| 76 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 77 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 78 |
foreach($result as $statusdata) {
|
| 79 |
$status[$statusdata['Name']]=$statusdata;
|
| 80 |
}
|
| 81 |
|
| 82 |
+
if ($file = @fopen(get_temp_dir().'backwpup/'.DB_NAME.'.sql', 'w')) {
|
| 83 |
fwrite($file, "-- ---------------------------------------------------------\n");
|
| 84 |
fwrite($file, "-- Dump with BackWPup ver.: ".BACKWPUP_VERSION."\n");
|
| 85 |
fwrite($file, "-- Plugin for WordPress by Daniel Huesken\n");
|
| 106 |
fwrite($file, "/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;\n\n");
|
| 107 |
//make table dumps
|
| 108 |
foreach($tables as $table) {
|
| 109 |
+
backwpup_joblog($logtime,__('Database table to Backup: ','backwpup').' '.$table);
|
| 110 |
+
backwpup_needfreememory(($status[$table]['Data_length']+$status[$table]['Index_length'])*1.3); //get mor memory if needed
|
| 111 |
+
fwrite($file, backwpup_dump_table($table,$status[$table],$file));
|
| 112 |
}
|
| 113 |
//for better import with mysql client
|
| 114 |
fwrite($file, "\n");
|
| 122 |
fwrite($file, "/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n");
|
| 123 |
fclose($file);
|
| 124 |
} else {
|
| 125 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Database Backup file','backwpup'));
|
| 126 |
}
|
| 127 |
} else {
|
| 128 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('No Tables to Backup','backwpup'));
|
| 129 |
}
|
| 130 |
|
| 131 |
|
| 132 |
+
backwpup_joblog($logtime,__('Database backup done!','backwpup'));
|
| 133 |
|
| 134 |
+
if ($jobs[$jobid]['type']=='DB' and is_file(get_temp_dir().'backwpup/'.DB_NAME.'.sql')) {
|
| 135 |
+
backwpup_needfreememory(8388608); //8MB free memory for zip
|
| 136 |
+
backwpup_joblog($logtime,__('Database file size:','backwpup').' '.backwpup_formatBytes(filesize(get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
|
| 137 |
+
backwpup_joblog($logtime,__('Create Zip file from dump...','backwpup'));
|
| 138 |
$zipbackupfile = new PclZip($backupfile);
|
| 139 |
+
if (0==$zipbackupfile -> create(get_temp_dir().'backwpup/'.DB_NAME.'.sql',PCLZIP_OPT_REMOVE_ALL_PATH,PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
|
| 140 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Database Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 141 |
$joberror=true;
|
| 142 |
}
|
| 143 |
+
backwpup_joblog($logtime,__('Zip file created...','backwpup'));
|
| 144 |
}
|
| 145 |
//clean vars
|
| 146 |
unset($tables);
|
app/dojob/destination-ftp.php
CHANGED
|
@@ -1,5 +1,35 @@
|
|
| 1 |
<?php
|
| 2 |
if (!empty($jobs[$jobid]['ftphost']) and !empty($jobs[$jobid]['ftpuser']) and !empty($jobs[$jobid]['ftppass'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
$ftpport=21;
|
| 4 |
$ftphost=$jobs[$jobid]['ftphost'];
|
| 5 |
if (false !== strpos($jobs[$jobid]['ftphost'],':')) //look for port
|
|
@@ -8,37 +38,40 @@ if (!empty($jobs[$jobid]['ftphost']) and !empty($jobs[$jobid]['ftpuser']) and !e
|
|
| 8 |
if (function_exists('ftp_ssl_connect')) { //make SSL FTP connection
|
| 9 |
$ftp_conn_id = ftp_ssl_connect($ftphost,$ftpport);
|
| 10 |
if ($ftp_conn_id) {
|
| 11 |
-
|
| 12 |
$type = ftp_systype($ftp_conn_id);
|
| 13 |
}
|
| 14 |
}
|
| 15 |
if (!$type) { //make normal FTP conection if SSL not work
|
| 16 |
$ftp_conn_id = ftp_connect($ftphost,$ftpport);
|
| 17 |
if ($ftp_conn_id) {
|
| 18 |
-
|
| 19 |
$type = ftp_systype($ftp_conn_id);
|
| 20 |
}
|
| 21 |
}
|
| 22 |
|
| 23 |
if ($type) {
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
if (ftp_put($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']).basename($backupfile), $backupfile, FTP_BINARY)) //transvere file
|
| 39 |
-
|
| 40 |
else
|
| 41 |
-
|
| 42 |
|
| 43 |
if ($jobs[$jobid]['ftpmaxbackups']>0) { //Delete old backups
|
| 44 |
if ($filelist=ftp_nlist($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']))) {
|
|
@@ -46,24 +79,24 @@ if (!empty($jobs[$jobid]['ftphost']) and !empty($jobs[$jobid]['ftpuser']) and !e
|
|
| 46 |
if (!in_array(basename($files),array('.','..')) and false !== strpos(basename($files),'backwpup_'.$jobid.'_'))
|
| 47 |
$backupfilelist[]=basename($files);
|
| 48 |
}
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
|
|
|
| 53 |
$numdeltefiles++;
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
| 56 |
}
|
| 57 |
-
if ($numdeltefiles>0)
|
| 58 |
-
BackWPupFunctions::joblog($logtime,$numdeltefiles.' '.__('files deleted on FTP Server:','backwpup'));
|
| 59 |
}
|
| 60 |
}
|
| 61 |
-
}
|
| 62 |
-
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not login to FTP server with user:','backwpup').' '.$jobs[$jobid]['ftpuser']);
|
| 63 |
-
}
|
| 64 |
ftp_close($ftp_conn_id);
|
| 65 |
} else {
|
| 66 |
-
|
| 67 |
}
|
| 68 |
}
|
| 69 |
?>
|
| 1 |
<?php
|
| 2 |
if (!empty($jobs[$jobid]['ftphost']) and !empty($jobs[$jobid]['ftpuser']) and !empty($jobs[$jobid]['ftppass'])) {
|
| 3 |
+
|
| 4 |
+
function ftp_raw_helper($ftp_conn_id,$command) { //FTP Comands helper function
|
| 5 |
+
$return=ftp_raw($ftp_conn_id,$command);
|
| 6 |
+
if (strtoupper(substr(trim($command),0,4))=="PASS") {
|
| 7 |
+
backwpup_joblog($logtime,__('FTP Client command:','backwpup').' PASS *******');
|
| 8 |
+
} else {
|
| 9 |
+
backwpup_joblog($logtime,__('FTP Client command:','backwpup').' '.$command);
|
| 10 |
+
}
|
| 11 |
+
foreach ($return as $returnline) {
|
| 12 |
+
$code=substr(trim($returnline),0,3);
|
| 13 |
+
if ($code>=100 and $code<200) {
|
| 14 |
+
backwpup_joblog($logtime,__('FTP Server Preliminary reply:','backwpup').' '.$returnline);
|
| 15 |
+
return true;
|
| 16 |
+
} elseif ($code>=200 and $code<300) {
|
| 17 |
+
backwpup_joblog($logtime,__('FTP Server Completion reply:','backwpup').' '.$returnline);
|
| 18 |
+
return true;
|
| 19 |
+
} elseif ($code>=300 and $code<400) {
|
| 20 |
+
backwpup_joblog($logtime,__('FTP Server Intermediate reply:','backwpup').' '.$returnline);
|
| 21 |
+
return true;
|
| 22 |
+
} elseif ($code>=400) {
|
| 23 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('FTP Server reply:','backwpup').' '.$returnline);
|
| 24 |
+
return false;
|
| 25 |
+
} else {
|
| 26 |
+
backwpup_joblog($logtime,__('FTP Server answer:','backwpup').' '.$returnline);
|
| 27 |
+
return $return;
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
|
| 33 |
$ftpport=21;
|
| 34 |
$ftphost=$jobs[$jobid]['ftphost'];
|
| 35 |
if (false !== strpos($jobs[$jobid]['ftphost'],':')) //look for port
|
| 38 |
if (function_exists('ftp_ssl_connect')) { //make SSL FTP connection
|
| 39 |
$ftp_conn_id = ftp_ssl_connect($ftphost,$ftpport);
|
| 40 |
if ($ftp_conn_id) {
|
| 41 |
+
backwpup_joblog($logtime,__('Connected by SSL to FTP server:','backwpup').' '.$jobs[$jobid]['ftphost']);
|
| 42 |
$type = ftp_systype($ftp_conn_id);
|
| 43 |
}
|
| 44 |
}
|
| 45 |
if (!$type) { //make normal FTP conection if SSL not work
|
| 46 |
$ftp_conn_id = ftp_connect($ftphost,$ftpport);
|
| 47 |
if ($ftp_conn_id) {
|
| 48 |
+
backwpup_joblog($logtime,__('Connected insecure to FTP server:','backwpup').' '.$jobs[$jobid]['ftphost']);
|
| 49 |
$type = ftp_systype($ftp_conn_id);
|
| 50 |
}
|
| 51 |
}
|
| 52 |
|
| 53 |
if ($type) {
|
| 54 |
+
backwpup_joblog($logtime,__('FTP server System is:','backwpup').' '.$type);
|
| 55 |
+
|
| 56 |
+
//FTP Login
|
| 57 |
+
$loginok=false;
|
| 58 |
+
if (ftp_raw_helper($ftp_conn_id,'USER '.$jobs[$jobid]['ftpuser'])) {
|
| 59 |
+
if (ftp_raw_helper($ftp_conn_id,'PASS '.base64_decode($jobs[$jobid]['ftppass']))) {
|
| 60 |
+
$loginok=true;
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
//if (ftp_login($ftp_conn_id, $jobs[$jobid]['ftpuser'], $jobs[$jobid]['ftppass'])) {
|
| 65 |
+
if ($loginok) {
|
| 66 |
+
//PASV
|
| 67 |
+
ftp_raw_helper($ftp_conn_id,'PASV');
|
| 68 |
+
//ALLO
|
| 69 |
+
ftp_raw_helper($ftp_conn_id,'ALLO '.filesize($backupfile));
|
| 70 |
|
| 71 |
if (ftp_put($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']).basename($backupfile), $backupfile, FTP_BINARY)) //transvere file
|
| 72 |
+
backwpup_joblog($logtime,__('Backup File transfered to FTP Server:','backwpup').' '.trailingslashit($jobs[$jobid]['ftpdir']).basename($backupfile));
|
| 73 |
else
|
| 74 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not tranfer backup to FTP server.','backwpup'));
|
| 75 |
|
| 76 |
if ($jobs[$jobid]['ftpmaxbackups']>0) { //Delete old backups
|
| 77 |
if ($filelist=ftp_nlist($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']))) {
|
| 79 |
if (!in_array(basename($files),array('.','..')) and false !== strpos(basename($files),'backwpup_'.$jobid.'_'))
|
| 80 |
$backupfilelist[]=basename($files);
|
| 81 |
}
|
| 82 |
+
if (sizeof($backupfilelist)>0) {
|
| 83 |
+
rsort($backupfilelist);
|
| 84 |
+
$numdeltefiles=0;
|
| 85 |
+
for ($i=$jobs[$jobid]['ftpmaxbackups'];$i<sizeof($backupfilelist);$i++) {
|
| 86 |
+
if (ftp_delete($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']).$backupfilelist[$i])) //delte files on ftp
|
| 87 |
$numdeltefiles++;
|
| 88 |
+
else
|
| 89 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not delete file on FTP Server:','backwpup').' '.trailingslashit($jobs[$jobid]['ftpdir']).$backupfilelist[$i]);
|
| 90 |
+
}
|
| 91 |
+
if ($numdeltefiles>0)
|
| 92 |
+
backwpup_joblog($logtime,$numdeltefiles.' '.__('files deleted on FTP Server:','backwpup'));
|
| 93 |
}
|
|
|
|
|
|
|
| 94 |
}
|
| 95 |
}
|
| 96 |
+
}
|
|
|
|
|
|
|
| 97 |
ftp_close($ftp_conn_id);
|
| 98 |
} else {
|
| 99 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not connect to FTP server:','backwpup').' '.$jobs[$jobid]['ftphost']);
|
| 100 |
}
|
| 101 |
}
|
| 102 |
?>
|
app/dojob/destination-mail.php
CHANGED
|
@@ -1,31 +1,37 @@
|
|
| 1 |
<?php
|
| 2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
//maillig method
|
| 4 |
-
add_action('phpmailer_init',
|
| 5 |
global $phpmailer;
|
| 6 |
-
|
| 7 |
-
BackWPupFunctions::joblog($logtime,__('Sendig mail...','backwpup'));
|
| 8 |
if (is_file($backupfile) and !empty($jobs[$jobid]['mailefilesize'])) {
|
| 9 |
$maxfilezise=abs($jobs[$jobid]['mailefilesize']*1024*1024);
|
| 10 |
if (filesize($backupfile)<$maxfilezise) {
|
| 11 |
$mailfiles[0]=$backupfile;
|
| 12 |
-
if (!
|
| 13 |
-
|
| 14 |
unset($mailfiles);
|
| 15 |
}
|
| 16 |
} else {
|
| 17 |
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 18 |
-
|
| 19 |
} else {
|
| 20 |
-
|
| 21 |
}
|
| 22 |
unset($mailfiles);
|
| 23 |
}
|
| 24 |
}
|
| 25 |
-
if (wp_mail($jobs[$jobid]['mailaddress'],__('BackWPup Job:','backwpup').' '
|
| 26 |
-
|
| 27 |
} else {
|
| 28 |
-
|
| 29 |
}
|
| 30 |
}
|
| 31 |
//clean vars
|
| 1 |
<?php
|
| 2 |
+
$sendmail=false;
|
| 3 |
+
$errorcount=$wpdb->get_var("SELECT error FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime);
|
| 4 |
+
if ($errorcount>0 and $jobs[$jobid]['mailerroronly'])
|
| 5 |
+
$sendmail=true;
|
| 6 |
+
if (!$jobs[$jobid]['mailerroronly'])
|
| 7 |
+
$sendmail=true;
|
| 8 |
+
|
| 9 |
+
if (!empty($jobs[$jobid]['mailaddress']) and $sendmail) {
|
| 10 |
//maillig method
|
| 11 |
+
add_action('phpmailer_init', 'backwpup_use_mail_method');
|
| 12 |
global $phpmailer;
|
| 13 |
+
backwpup_joblog($logtime,__('Sendig mail...','backwpup'));
|
|
|
|
| 14 |
if (is_file($backupfile) and !empty($jobs[$jobid]['mailefilesize'])) {
|
| 15 |
$maxfilezise=abs($jobs[$jobid]['mailefilesize']*1024*1024);
|
| 16 |
if (filesize($backupfile)<$maxfilezise) {
|
| 17 |
$mailfiles[0]=$backupfile;
|
| 18 |
+
if (!backwpup_needfreememory(filesize($backupfile)*4)) {
|
| 19 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not increase Memory for sending Backup Archive by Mail','backwpup'));
|
| 20 |
unset($mailfiles);
|
| 21 |
}
|
| 22 |
} else {
|
| 23 |
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 24 |
+
backwpup_joblog($logtime,__('WARNING:','backwpup').' '.__('Backup Archive too big for sendig by mail','backwpup'));
|
| 25 |
} else {
|
| 26 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Backup Archive too big for sendig by mail','backwpup'));
|
| 27 |
}
|
| 28 |
unset($mailfiles);
|
| 29 |
}
|
| 30 |
}
|
| 31 |
+
if (wp_mail($jobs[$jobid]['mailaddress'],__('BackWPup Job:','backwpup').' '.date('Y-m-d H:i',$logtime).': '.$jobs[$jobid]['name'] ,$wpdb->get_var("SELECT log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime),'',$mailfiles)) {
|
| 32 |
+
backwpup_joblog($logtime,__('Mail send!!!','backwpup'));
|
| 33 |
} else {
|
| 34 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Can not send mail:','backwpup').' '.$phpmailer->ErrorInfo);
|
| 35 |
}
|
| 36 |
}
|
| 37 |
//clean vars
|
app/dojob/file.php
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
<?PHP
|
| 2 |
global $backwupu_exclude ,$backwpup_allfilezise, $backwpup_jobs;
|
| 3 |
$backwpup_jobs=$jobs[$jobid];
|
| 4 |
-
|
| 5 |
-
|
| 6 |
|
| 7 |
// helper function to scan dirs recursive
|
| 8 |
function backwpup_list_files( $folder = '', $levels = 100 ) {
|
| 9 |
-
global $backwupu_exclude ,$backwpup_allfilezise, $backwpup_jobs;
|
| 10 |
if( empty($folder) )
|
| 11 |
return false;
|
| 12 |
if( ! $levels )
|
|
@@ -30,12 +30,12 @@
|
|
| 30 |
$files.=",". $folder . '/' . $file;
|
| 31 |
$filezise=filesize($folder . '/' . $file);
|
| 32 |
$backwpup_allfilezise=$backwpup_allfilezise+$filezise;
|
| 33 |
-
|
| 34 |
} else {
|
| 35 |
-
|
| 36 |
}
|
| 37 |
} else {
|
| 38 |
-
|
| 39 |
}
|
| 40 |
}
|
| 41 |
}
|
|
@@ -50,7 +50,7 @@
|
|
| 50 |
if (!empty($jobs[$jobid]['fileexclude']))
|
| 51 |
$backwupu_exclude=split(',',$jobs[$jobid]['fileexclude']);
|
| 52 |
//Exclude Temp dir
|
| 53 |
-
$backwupu_exclude[]=
|
| 54 |
//Exclude Backup dirs
|
| 55 |
foreach($jobs as $jobsvale) {
|
| 56 |
$backwupu_exclude[]=$jobsvale['backupdir'];
|
|
@@ -77,30 +77,30 @@
|
|
| 77 |
}
|
| 78 |
|
| 79 |
if (empty($filelist)) {
|
| 80 |
-
|
| 81 |
unset($filelist); //clean vars
|
| 82 |
} else {
|
| 83 |
-
|
| 84 |
}
|
| 85 |
|
| 86 |
//Create Zip File
|
| 87 |
if (!empty($filelist)) {
|
| 88 |
-
|
| 89 |
-
|
| 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 |
-
|
| 93 |
}
|
| 94 |
unset($filelist);
|
| 95 |
if ($jobs[$jobid]['type']=='DB+FILE') {
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
if (0==$zipbackupfile -> add(
|
| 99 |
-
|
| 100 |
}
|
| 101 |
}
|
| 102 |
unset($zipbackupfile);
|
| 103 |
-
|
| 104 |
}
|
| 105 |
|
| 106 |
?>
|
| 1 |
<?PHP
|
| 2 |
global $backwupu_exclude ,$backwpup_allfilezise, $backwpup_jobs;
|
| 3 |
$backwpup_jobs=$jobs[$jobid];
|
| 4 |
+
backwpup_joblog($logtime,__('Run file backup...','backwpup'));
|
| 5 |
+
backwpup_joblog($logtime,__('Get files to backup...','backwpup'));
|
| 6 |
|
| 7 |
// helper function to scan dirs recursive
|
| 8 |
function backwpup_list_files( $folder = '', $levels = 100 ) {
|
| 9 |
+
global $backwupu_exclude ,$backwpup_allfilezise, $backwpup_jobs, $logtime;
|
| 10 |
if( empty($folder) )
|
| 11 |
return false;
|
| 12 |
if( ! $levels )
|
| 30 |
$files.=",". $folder . '/' . $file;
|
| 31 |
$filezise=filesize($folder . '/' . $file);
|
| 32 |
$backwpup_allfilezise=$backwpup_allfilezise+$filezise;
|
| 33 |
+
backwpup_joblog($logtime,__('File to Backup:','backwpup').' '.$folder . '/' . $file.' '.backwpup_formatBytes($filezise));
|
| 34 |
} else {
|
| 35 |
+
backwpup_joblog($logtime,__('WARNING:','backwpup').' '.__('Can not read file:','backwpup').' '.$folder . '/' . $file);
|
| 36 |
}
|
| 37 |
} else {
|
| 38 |
+
backwpup_joblog($logtime,__('WARNING:','backwpup').' '.__('Is not a file or directory:','backwpup').' '.$folder . '/' . $file);
|
| 39 |
}
|
| 40 |
}
|
| 41 |
}
|
| 50 |
if (!empty($jobs[$jobid]['fileexclude']))
|
| 51 |
$backwupu_exclude=split(',',$jobs[$jobid]['fileexclude']);
|
| 52 |
//Exclude Temp dir
|
| 53 |
+
$backwupu_exclude[]=get_temp_dir().'backwpup';
|
| 54 |
//Exclude Backup dirs
|
| 55 |
foreach($jobs as $jobsvale) {
|
| 56 |
$backwupu_exclude[]=$jobsvale['backupdir'];
|
| 77 |
}
|
| 78 |
|
| 79 |
if (empty($filelist)) {
|
| 80 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('No files to Backup','backwpup'));
|
| 81 |
unset($filelist); //clean vars
|
| 82 |
} else {
|
| 83 |
+
backwpup_joblog($logtime,__('Size off all files:','backwpup').' '.backwpup_formatBytes($backwpup_allfilezise));
|
| 84 |
}
|
| 85 |
|
| 86 |
//Create Zip File
|
| 87 |
if (!empty($filelist)) {
|
| 88 |
+
backwpup_needfreememory(8388608); //8MB free memory for zip
|
| 89 |
+
backwpup_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 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 93 |
}
|
| 94 |
unset($filelist);
|
| 95 |
if ($jobs[$jobid]['type']=='DB+FILE') {
|
| 96 |
+
backwpup_joblog($logtime,__('Database file size:','backwpup').' '.backwpup_formatBytes(filesize(get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
|
| 97 |
+
backwpup_joblog($logtime,__('Add Database dump to Backup Zip file...','backwpup'));
|
| 98 |
+
if (0==$zipbackupfile -> add(get_temp_dir().'backwpup/'.DB_NAME.'.sql',PCLZIP_OPT_REMOVE_ALL_PATH,PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
|
| 99 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create Add Database dump:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 100 |
}
|
| 101 |
}
|
| 102 |
unset($zipbackupfile);
|
| 103 |
+
backwpup_joblog($logtime,__('Backup Zip file create done!','backwpup'));
|
| 104 |
}
|
| 105 |
|
| 106 |
?>
|
app/dojob/optimize.php
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
<?PHP
|
| 2 |
//Optimize SQL Table
|
| 3 |
-
|
| 4 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 5 |
|
| 6 |
if (is_array($jobs[$jobid]['dbexclude'])) {
|
|
@@ -14,14 +14,14 @@ if (sizeof($tables)>0) {
|
|
| 14 |
foreach ($tables as $table) {
|
| 15 |
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 16 |
$optimize=$wpdb->get_row('OPTIMIZE TABLE `'.$table.'`', ARRAY_A);
|
| 17 |
-
|
| 18 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 19 |
-
|
| 20 |
}
|
| 21 |
}
|
| 22 |
$wpdb->flush();
|
| 23 |
-
|
| 24 |
} else {
|
| 25 |
-
|
| 26 |
}
|
| 27 |
?>
|
| 1 |
<?PHP
|
| 2 |
//Optimize SQL Table
|
| 3 |
+
backwpup_joblog($logtime,__('Run Database optimize...','backwpup'));
|
| 4 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 5 |
|
| 6 |
if (is_array($jobs[$jobid]['dbexclude'])) {
|
| 14 |
foreach ($tables as $table) {
|
| 15 |
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 16 |
$optimize=$wpdb->get_row('OPTIMIZE TABLE `'.$table.'`', ARRAY_A);
|
| 17 |
+
backwpup_joblog($logtime,__(strtoupper($optimize['Msg_type']).':','backwpup').' '.sprintf(__('Result of table optimize for %1$s is: %2$s','backwpup'), $table, $optimize['Msg_text']));
|
| 18 |
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 19 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 20 |
}
|
| 21 |
}
|
| 22 |
$wpdb->flush();
|
| 23 |
+
backwpup_joblog($logtime,__('Database optimize done!','backwpup'));
|
| 24 |
} else {
|
| 25 |
+
backwpup_joblog($logtime,__('ERROR:','backwpup').' '.__('No Tables to optimize','backwpup'));
|
| 26 |
}
|
| 27 |
?>
|
app/functions.php
CHANGED
|
@@ -1,28 +1,14 @@
|
|
| 1 |
<?PHP
|
| 2 |
-
|
| 3 |
-
class BackWPupFunctions {
|
| 4 |
-
|
| 5 |
-
//Same as WP function but needet for cron
|
| 6 |
-
function get_temp_dir() {
|
| 7 |
-
if ( defined('WP_TEMP_DIR') )
|
| 8 |
-
return trailingslashit(WP_TEMP_DIR);
|
| 9 |
-
$temp = WP_CONTENT_DIR . '/';
|
| 10 |
-
if ( is_dir($temp) && is_writable($temp) )
|
| 11 |
-
return $temp;
|
| 12 |
-
if ( function_exists('sys_get_temp_dir') )
|
| 13 |
-
return trailingslashit(sys_get_temp_dir());
|
| 14 |
-
return '/tmp/';
|
| 15 |
-
}
|
| 16 |
|
| 17 |
//Thems Option menu entry
|
| 18 |
-
function
|
| 19 |
-
$hook = add_management_page(__('BackWPup','backwpup'), __('BackWPup','backwpup'), '10', 'BackWPup',
|
| 20 |
-
add_action('load-'.$hook,
|
| 21 |
-
add_contextual_help($hook,
|
| 22 |
}
|
| 23 |
|
| 24 |
// Help too display
|
| 25 |
-
function
|
| 26 |
$help .= '<div class="metabox-prefs">';
|
| 27 |
$help .= '<a href="http://wordpress.org/tags/backwpup" target="_blank">'.__('Support').'</a>';
|
| 28 |
$help .= ' | <a href="http://wordpress.org/extend/plugins/backwpup/faq/" target="_blank">' . __('FAQ') . '</a>';
|
|
@@ -38,7 +24,7 @@ class BackWPupFunctions {
|
|
| 38 |
}
|
| 39 |
|
| 40 |
//Options Page
|
| 41 |
-
function
|
| 42 |
global $wpdb;
|
| 43 |
if (!current_user_can(10))
|
| 44 |
wp_die('No rights');
|
|
@@ -78,7 +64,7 @@ class BackWPupFunctions {
|
|
| 78 |
}
|
| 79 |
|
| 80 |
//Options Page
|
| 81 |
-
function
|
| 82 |
global $wpdb;
|
| 83 |
if (!current_user_can(10))
|
| 84 |
wp_die('No rights');
|
|
@@ -87,70 +73,18 @@ class BackWPupFunctions {
|
|
| 87 |
//wp_enqueue_script('BackWpupOptions',plugins_url('/'.BACKWPUP_PLUGIN_DIR.'/app/js/options.js'),array('jquery','utils','jquery-ui-core'),BACKWPUP_VERSION,true);
|
| 88 |
//For save Options
|
| 89 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-save.php');
|
| 90 |
-
if ($_REQUEST['action2']!='-1' and !empty($_REQUEST['doaction2']))
|
| 91 |
-
$_REQUEST['action']=$_REQUEST['action2'];
|
| 92 |
-
switch($_REQUEST['action']) {
|
| 93 |
-
case 'delete':
|
| 94 |
-
if (is_Array($_POST['jobs'])) {
|
| 95 |
-
check_admin_referer('actions-jobs');
|
| 96 |
-
foreach ($_POST['jobs'] as $jobid) {
|
| 97 |
-
BackWPupOptions::delete_job($jobid);
|
| 98 |
-
}
|
| 99 |
-
} else {
|
| 100 |
-
$jobid = (int) $_GET['jobid'];
|
| 101 |
-
check_admin_referer('delete-job_' . $jobid);
|
| 102 |
-
BackWPupOptions::delete_job($jobid);
|
| 103 |
-
}
|
| 104 |
-
$_REQUEST['action']='';
|
| 105 |
-
break;
|
| 106 |
-
case 'delete-logs':
|
| 107 |
-
if (is_Array($_POST['logs'])) {
|
| 108 |
-
check_admin_referer('actions-logs');
|
| 109 |
-
foreach ($_POST['logs'] as $timestamp) {
|
| 110 |
-
BackWPupOptions::delete_log($timestamp);
|
| 111 |
-
}
|
| 112 |
-
} else {
|
| 113 |
-
$timestamp = (int) $_GET['log'];
|
| 114 |
-
check_admin_referer('delete-log_' . $timestamp);
|
| 115 |
-
BackWPupOptions::delete_log($timestamp);
|
| 116 |
-
}
|
| 117 |
-
$_REQUEST['action']='logs';
|
| 118 |
-
break;
|
| 119 |
-
case 'saveeditjob':
|
| 120 |
-
check_admin_referer('edit-job');
|
| 121 |
-
BackWPupOptions::edit_job((int) $_POST['jobid']);
|
| 122 |
-
break;
|
| 123 |
-
case 'savecfg':
|
| 124 |
-
check_admin_referer('backwpup-cfg');
|
| 125 |
-
BackWPupOptions::config();
|
| 126 |
-
$_REQUEST['action']='settings';
|
| 127 |
-
break;
|
| 128 |
-
case 'copy':
|
| 129 |
-
$jobid = (int) $_GET['jobid'];
|
| 130 |
-
check_admin_referer('copy-job_'.$jobid);
|
| 131 |
-
BackWPupOptions::copy_job($jobid);
|
| 132 |
-
$_REQUEST['action']='';
|
| 133 |
-
break;
|
| 134 |
-
case 'download':
|
| 135 |
-
$log = (int) $_GET['log'];
|
| 136 |
-
check_admin_referer('download-backup_'.$log);
|
| 137 |
-
BackWPupOptions::download_backup($log);
|
| 138 |
-
$_REQUEST['action']='logs';
|
| 139 |
-
break;
|
| 140 |
-
}
|
| 141 |
}
|
| 142 |
|
| 143 |
//delete Otions
|
| 144 |
-
function
|
| 145 |
global $wpdb;
|
| 146 |
delete_option('backwpup');
|
| 147 |
delete_option('backwpup_jobs');
|
| 148 |
-
delete_option('backwpup_log');
|
| 149 |
$wpdb->query("DROP TABLE IF EXISTS ".$wpdb->backwpup_logs);
|
| 150 |
}
|
| 151 |
|
| 152 |
//On Plugin activate
|
| 153 |
-
function
|
| 154 |
global $wpdb;
|
| 155 |
|
| 156 |
//Create log table
|
|
@@ -164,8 +98,6 @@ class BackWPupFunctions {
|
|
| 164 |
$charset_collate .= " COLLATE $wpdb->collate";
|
| 165 |
}
|
| 166 |
}
|
| 167 |
-
|
| 168 |
-
|
| 169 |
$statements = array(
|
| 170 |
"CREATE TABLE ".$wpdb->backwpup_logs." (
|
| 171 |
logtime BIGINT NOT NULL,
|
|
@@ -175,14 +107,13 @@ class BackWPupFunctions {
|
|
| 175 |
error TINYINT NOT NULL default '0',
|
| 176 |
warning TINYINT NOT NULL default '0',
|
| 177 |
worktime TINYINT NOT NULL default '0',
|
| 178 |
-
log
|
| 179 |
backupfile VARCHAR(255),
|
| 180 |
PRIMARY KEY (logtime)
|
| 181 |
)".$charset_collate,
|
| 182 |
);
|
| 183 |
$sql = implode(';', $statements);
|
| 184 |
dbDelta($sql);
|
| 185 |
-
|
| 186 |
//add cron jobs
|
| 187 |
$jobs=get_option('backwpup_jobs');
|
| 188 |
if (is_array($jobs)) {
|
|
@@ -196,7 +127,7 @@ class BackWPupFunctions {
|
|
| 196 |
}
|
| 197 |
|
| 198 |
//on Plugin deaktivate
|
| 199 |
-
function
|
| 200 |
//remove cron jobs
|
| 201 |
$jobs=get_option('backwpup_jobs');
|
| 202 |
if (is_array($jobs)) {
|
|
@@ -209,14 +140,14 @@ class BackWPupFunctions {
|
|
| 209 |
}
|
| 210 |
|
| 211 |
//add edit setting to plugins page
|
| 212 |
-
function
|
| 213 |
$settings_link='<a href="admin.php?page=BackWPup" title="' . __('Go to Settings Page','backwpup') . '" class="edit">' . __('Settings') . '</a>';
|
| 214 |
array_unshift( $links, $settings_link );
|
| 215 |
return $links;
|
| 216 |
}
|
| 217 |
|
| 218 |
//add links on plugins page
|
| 219 |
-
function
|
| 220 |
if ($file == BACKWPUP_PLUGIN_DIR.'/backwpup.php') {
|
| 221 |
$links[] = '<a href="http://wordpress.org/extend/plugins/backwpup/faq/" target="_blank">' . __('FAQ') . '</a>';
|
| 222 |
$links[] = '<a href="http://wordpress.org/tags/backwpup/" target="_blank">' . __('Support') . '</a>';
|
|
@@ -226,7 +157,7 @@ class BackWPupFunctions {
|
|
| 226 |
}
|
| 227 |
|
| 228 |
//Add cron interval
|
| 229 |
-
function
|
| 230 |
$jobs=get_option('backwpup_jobs'); //Load Settings
|
| 231 |
if (is_array($jobs)) {
|
| 232 |
foreach ($jobs as $jobkey => $jobvalue) {
|
|
@@ -238,16 +169,19 @@ class BackWPupFunctions {
|
|
| 238 |
}
|
| 239 |
return $schedules;
|
| 240 |
}
|
|
|
|
| 241 |
|
| 242 |
//DoJob
|
| 243 |
-
function
|
| 244 |
global $wpdb;
|
|
|
|
| 245 |
if (is_array($args)) { //cron gifes no complete arry back!!!
|
| 246 |
extract($args, EXTR_SKIP );
|
| 247 |
} else {
|
| 248 |
$jobid=$args;
|
| 249 |
}
|
| 250 |
if (empty($jobid)) return false;
|
|
|
|
| 251 |
require_once('dojob/bevore.php');
|
| 252 |
switch($jobs[$jobid]['type']) {
|
| 253 |
case 'DB+FILE':
|
|
@@ -280,7 +214,7 @@ class BackWPupFunctions {
|
|
| 280 |
}
|
| 281 |
|
| 282 |
//increase Memory need free memory in bytes
|
| 283 |
-
function
|
| 284 |
global $logtime;
|
| 285 |
if (!function_exists('memory_get_usage'))
|
| 286 |
return true;
|
|
@@ -297,21 +231,21 @@ class BackWPupFunctions {
|
|
| 297 |
|
| 298 |
if (memory_get_usage()+$memneed>$memory) { // increase Memory
|
| 299 |
if (ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='on' or ini_get('safe_mode')=='1') {
|
| 300 |
-
|
| 301 |
return false;
|
| 302 |
}
|
| 303 |
$newmemory=round((memory_get_usage()+$memneed)/1024/1024)+1;
|
| 304 |
if ($oldmem=ini_set('memory_limit', $newmemory.'M'))
|
| 305 |
-
|
| 306 |
else
|
| 307 |
-
|
| 308 |
}
|
| 309 |
return true;
|
| 310 |
}
|
| 311 |
|
| 312 |
|
| 313 |
//Make Log File for Jobs.
|
| 314 |
-
function
|
| 315 |
global $wpdb;
|
| 316 |
$errors=0;$warnings=0;
|
| 317 |
if (substr($entry,0,strlen(__('ERROR:','backwpup')))==__('ERROR:','backwpup'))
|
|
@@ -319,13 +253,13 @@ class BackWPupFunctions {
|
|
| 319 |
if (substr($entry,0,strlen(__('WARNING:','backwpup')))==__('WARNING:','backwpup'))
|
| 320 |
$warnings=1;
|
| 321 |
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);
|
| 322 |
-
|
|
|
|
| 323 |
flush();
|
| 324 |
-
ob_flush();
|
| 325 |
}
|
| 326 |
|
| 327 |
//file size
|
| 328 |
-
function
|
| 329 |
$units = array('B', 'KB', 'MB', 'GB', 'TB');
|
| 330 |
$bytes = max($bytes, 0);
|
| 331 |
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
|
|
@@ -335,7 +269,7 @@ class BackWPupFunctions {
|
|
| 335 |
}
|
| 336 |
|
| 337 |
//echo long backup type name
|
| 338 |
-
function
|
| 339 |
switch($type) {
|
| 340 |
case 'DB+FILE':
|
| 341 |
$typename=__('Database & File Backup','backwpup');
|
|
@@ -363,7 +297,7 @@ class BackWPupFunctions {
|
|
| 363 |
}
|
| 364 |
|
| 365 |
//Dashboard widget
|
| 366 |
-
function
|
| 367 |
global $wpdb;
|
| 368 |
echo '<strong>'.__('Logs:','backwpup').'</strong><ul>';
|
| 369 |
$logs=$wpdb->get_results("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC LIMIT 5", ARRAY_A);
|
|
@@ -372,7 +306,7 @@ class BackWPupFunctions {
|
|
| 372 |
foreach ($logs as $logvalue) {
|
| 373 |
echo '<li><a href="'.wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$logvalue['logtime'], 'view-log').'" title="'.__('View Log','backwpup').'"><strong>'.date(get_option('date_format'),$logvalue['logtime']).' '.date(get_option('time_format'),$logvalue['logtime']).'</strong>: <i>';
|
| 374 |
if (empty($logvalue['jobname']))
|
| 375 |
-
|
| 376 |
else
|
| 377 |
echo $logvalue['jobname'];
|
| 378 |
echo '</i>';
|
|
@@ -412,12 +346,12 @@ class BackWPupFunctions {
|
|
| 412 |
}
|
| 413 |
|
| 414 |
//add dashboard widget
|
| 415 |
-
function
|
| 416 |
-
wp_add_dashboard_widget( 'backwpup_dashboard_widget', 'BackWPup',
|
| 417 |
}
|
| 418 |
|
| 419 |
//Sed mail send Method
|
| 420 |
-
function
|
| 421 |
global $phpmailer;
|
| 422 |
$cfg=get_option('backwpup'); //Load Settings
|
| 423 |
if ($cfg['mailmethod']=="SMTP") {
|
|
@@ -429,7 +363,7 @@ class BackWPupFunctions {
|
|
| 429 |
$phpmailer->Port=$smtpport;
|
| 430 |
$phpmailer->SMTPSecure=$cfg['mailsecure'];
|
| 431 |
$phpmailer->Username=$cfg['mailuser'];
|
| 432 |
-
$phpmailer->Password
|
| 433 |
if (!empty($cfg['mailuser']) and !empty($cfg['mailpass']))
|
| 434 |
$phpmailer->SMTPAuth=true;
|
| 435 |
$phpmailer->IsSMTP();
|
|
@@ -442,22 +376,25 @@ class BackWPupFunctions {
|
|
| 442 |
}
|
| 443 |
|
| 444 |
// add all action and so on only if plugin loaded.
|
| 445 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
| 446 |
//add Menu
|
| 447 |
-
add_action('admin_menu',
|
| 448 |
//Additional links on the plugin page
|
| 449 |
if (current_user_can(10))
|
| 450 |
-
add_filter('plugin_action_links_'.BACKWPUP_PLUGIN_DIR.'/backwpup.php',
|
| 451 |
if (current_user_can('install_plugins'))
|
| 452 |
-
add_filter('plugin_row_meta',
|
| 453 |
//add cron intervals
|
| 454 |
-
add_filter('cron_schedules',
|
| 455 |
//Actions for Cron job
|
| 456 |
-
add_action('backwpup_cron',
|
| 457 |
//add Dashboard widget
|
| 458 |
if (current_user_can(10))
|
| 459 |
-
add_action('wp_dashboard_setup',
|
| 460 |
}
|
| 461 |
-
}
|
| 462 |
|
| 463 |
?>
|
| 1 |
<?PHP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
//Thems Option menu entry
|
| 4 |
+
function backwpup_menu_entry() {
|
| 5 |
+
$hook = add_management_page(__('BackWPup','backwpup'), __('BackWPup','backwpup'), '10', 'BackWPup','backwpup_options_page') ;
|
| 6 |
+
add_action('load-'.$hook, 'backwpup_options_load');
|
| 7 |
+
add_contextual_help($hook,backwpup_show_help());
|
| 8 |
}
|
| 9 |
|
| 10 |
// Help too display
|
| 11 |
+
function backwpup_show_help() {
|
| 12 |
$help .= '<div class="metabox-prefs">';
|
| 13 |
$help .= '<a href="http://wordpress.org/tags/backwpup" target="_blank">'.__('Support').'</a>';
|
| 14 |
$help .= ' | <a href="http://wordpress.org/extend/plugins/backwpup/faq/" target="_blank">' . __('FAQ') . '</a>';
|
| 24 |
}
|
| 25 |
|
| 26 |
//Options Page
|
| 27 |
+
function backwpup_options_page() {
|
| 28 |
global $wpdb;
|
| 29 |
if (!current_user_can(10))
|
| 30 |
wp_die('No rights');
|
| 64 |
}
|
| 65 |
|
| 66 |
//Options Page
|
| 67 |
+
function backwpup_options_load() {
|
| 68 |
global $wpdb;
|
| 69 |
if (!current_user_can(10))
|
| 70 |
wp_die('No rights');
|
| 73 |
//wp_enqueue_script('BackWpupOptions',plugins_url('/'.BACKWPUP_PLUGIN_DIR.'/app/js/options.js'),array('jquery','utils','jquery-ui-core'),BACKWPUP_VERSION,true);
|
| 74 |
//For save Options
|
| 75 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-save.php');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
}
|
| 77 |
|
| 78 |
//delete Otions
|
| 79 |
+
function backwpup_plugin_uninstall() {
|
| 80 |
global $wpdb;
|
| 81 |
delete_option('backwpup');
|
| 82 |
delete_option('backwpup_jobs');
|
|
|
|
| 83 |
$wpdb->query("DROP TABLE IF EXISTS ".$wpdb->backwpup_logs);
|
| 84 |
}
|
| 85 |
|
| 86 |
//On Plugin activate
|
| 87 |
+
function backwpup_plugin_activate() {
|
| 88 |
global $wpdb;
|
| 89 |
|
| 90 |
//Create log table
|
| 98 |
$charset_collate .= " COLLATE $wpdb->collate";
|
| 99 |
}
|
| 100 |
}
|
|
|
|
|
|
|
| 101 |
$statements = array(
|
| 102 |
"CREATE TABLE ".$wpdb->backwpup_logs." (
|
| 103 |
logtime BIGINT NOT NULL,
|
| 107 |
error TINYINT NOT NULL default '0',
|
| 108 |
warning TINYINT NOT NULL default '0',
|
| 109 |
worktime TINYINT NOT NULL default '0',
|
| 110 |
+
log LONGTEXT NOT NULL default '',
|
| 111 |
backupfile VARCHAR(255),
|
| 112 |
PRIMARY KEY (logtime)
|
| 113 |
)".$charset_collate,
|
| 114 |
);
|
| 115 |
$sql = implode(';', $statements);
|
| 116 |
dbDelta($sql);
|
|
|
|
| 117 |
//add cron jobs
|
| 118 |
$jobs=get_option('backwpup_jobs');
|
| 119 |
if (is_array($jobs)) {
|
| 127 |
}
|
| 128 |
|
| 129 |
//on Plugin deaktivate
|
| 130 |
+
function backwpup_plugin_deactivate() {
|
| 131 |
//remove cron jobs
|
| 132 |
$jobs=get_option('backwpup_jobs');
|
| 133 |
if (is_array($jobs)) {
|
| 140 |
}
|
| 141 |
|
| 142 |
//add edit setting to plugins page
|
| 143 |
+
function backwpup_plugin_options_link($links) {
|
| 144 |
$settings_link='<a href="admin.php?page=BackWPup" title="' . __('Go to Settings Page','backwpup') . '" class="edit">' . __('Settings') . '</a>';
|
| 145 |
array_unshift( $links, $settings_link );
|
| 146 |
return $links;
|
| 147 |
}
|
| 148 |
|
| 149 |
//add links on plugins page
|
| 150 |
+
function backwpup_plugin_links($links, $file) {
|
| 151 |
if ($file == BACKWPUP_PLUGIN_DIR.'/backwpup.php') {
|
| 152 |
$links[] = '<a href="http://wordpress.org/extend/plugins/backwpup/faq/" target="_blank">' . __('FAQ') . '</a>';
|
| 153 |
$links[] = '<a href="http://wordpress.org/tags/backwpup/" target="_blank">' . __('Support') . '</a>';
|
| 157 |
}
|
| 158 |
|
| 159 |
//Add cron interval
|
| 160 |
+
function backwpup_intervals($schedules) {
|
| 161 |
$jobs=get_option('backwpup_jobs'); //Load Settings
|
| 162 |
if (is_array($jobs)) {
|
| 163 |
foreach ($jobs as $jobkey => $jobvalue) {
|
| 169 |
}
|
| 170 |
return $schedules;
|
| 171 |
}
|
| 172 |
+
|
| 173 |
|
| 174 |
//DoJob
|
| 175 |
+
function backwpup_dojob($args) {
|
| 176 |
global $wpdb;
|
| 177 |
+
|
| 178 |
if (is_array($args)) { //cron gifes no complete arry back!!!
|
| 179 |
extract($args, EXTR_SKIP );
|
| 180 |
} else {
|
| 181 |
$jobid=$args;
|
| 182 |
}
|
| 183 |
if (empty($jobid)) return false;
|
| 184 |
+
require_once(ABSPATH . 'wp-admin/includes/file.php'); //for get_tempdir();
|
| 185 |
require_once('dojob/bevore.php');
|
| 186 |
switch($jobs[$jobid]['type']) {
|
| 187 |
case 'DB+FILE':
|
| 214 |
}
|
| 215 |
|
| 216 |
//increase Memory need free memory in bytes
|
| 217 |
+
function backwpup_needfreememory($memneed) {
|
| 218 |
global $logtime;
|
| 219 |
if (!function_exists('memory_get_usage'))
|
| 220 |
return true;
|
| 231 |
|
| 232 |
if (memory_get_usage()+$memneed>$memory) { // increase Memory
|
| 233 |
if (ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='on' or ini_get('safe_mode')=='1') {
|
| 234 |
+
backwpup_joblog($logtime,__('WARNING:','backwpup').' '.sprintf(__('PHP Safe Mode is on!!! Can not increse Memory Limit is %1$s','backwpup'),ini_get('memory_limit')));
|
| 235 |
return false;
|
| 236 |
}
|
| 237 |
$newmemory=round((memory_get_usage()+$memneed)/1024/1024)+1;
|
| 238 |
if ($oldmem=ini_set('memory_limit', $newmemory.'M'))
|
| 239 |
+
backwpup_joblog($logtime,sprintf(__('Memory incresed from %1$s to %2$s','backwpup'),$oldmem,ini_get('memory_limit')));
|
| 240 |
else
|
| 241 |
+
backwpup_joblog($logtime,sprintf(__('ERROR:','backwpup').' '.__('Can not increse Memory Limit is %1$s','backwpup'),ini_get('memory_limit')));
|
| 242 |
}
|
| 243 |
return true;
|
| 244 |
}
|
| 245 |
|
| 246 |
|
| 247 |
//Make Log File for Jobs.
|
| 248 |
+
function backwpup_joblog($logtime,$entry) {
|
| 249 |
global $wpdb;
|
| 250 |
$errors=0;$warnings=0;
|
| 251 |
if (substr($entry,0,strlen(__('ERROR:','backwpup')))==__('ERROR:','backwpup'))
|
| 253 |
if (substr($entry,0,strlen(__('WARNING:','backwpup')))==__('WARNING:','backwpup'))
|
| 254 |
$warnings=1;
|
| 255 |
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);
|
| 256 |
+
if (!defined('DOING_CRON'))
|
| 257 |
+
echo date('Y-m-d H:i:s').": ".$entry."\n";
|
| 258 |
flush();
|
|
|
|
| 259 |
}
|
| 260 |
|
| 261 |
//file size
|
| 262 |
+
function backwpup_formatBytes($bytes, $precision = 2) {
|
| 263 |
$units = array('B', 'KB', 'MB', 'GB', 'TB');
|
| 264 |
$bytes = max($bytes, 0);
|
| 265 |
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
|
| 269 |
}
|
| 270 |
|
| 271 |
//echo long backup type name
|
| 272 |
+
function backwpup_backup_types($type='',$echo=false) {
|
| 273 |
switch($type) {
|
| 274 |
case 'DB+FILE':
|
| 275 |
$typename=__('Database & File Backup','backwpup');
|
| 297 |
}
|
| 298 |
|
| 299 |
//Dashboard widget
|
| 300 |
+
function backwpup_dashboard_output() {
|
| 301 |
global $wpdb;
|
| 302 |
echo '<strong>'.__('Logs:','backwpup').'</strong><ul>';
|
| 303 |
$logs=$wpdb->get_results("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC LIMIT 5", ARRAY_A);
|
| 306 |
foreach ($logs as $logvalue) {
|
| 307 |
echo '<li><a href="'.wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$logvalue['logtime'], 'view-log').'" title="'.__('View Log','backwpup').'"><strong>'.date(get_option('date_format'),$logvalue['logtime']).' '.date(get_option('time_format'),$logvalue['logtime']).'</strong>: <i>';
|
| 308 |
if (empty($logvalue['jobname']))
|
| 309 |
+
backwpup_backup_types($logvalue['type'],true);
|
| 310 |
else
|
| 311 |
echo $logvalue['jobname'];
|
| 312 |
echo '</i>';
|
| 346 |
}
|
| 347 |
|
| 348 |
//add dashboard widget
|
| 349 |
+
function backwpup_add_dashboard() {
|
| 350 |
+
wp_add_dashboard_widget( 'backwpup_dashboard_widget', 'BackWPup', 'backwpup_dashboard_output' );
|
| 351 |
}
|
| 352 |
|
| 353 |
//Sed mail send Method
|
| 354 |
+
function backwpup_use_mail_method() {
|
| 355 |
global $phpmailer;
|
| 356 |
$cfg=get_option('backwpup'); //Load Settings
|
| 357 |
if ($cfg['mailmethod']=="SMTP") {
|
| 363 |
$phpmailer->Port=$smtpport;
|
| 364 |
$phpmailer->SMTPSecure=$cfg['mailsecure'];
|
| 365 |
$phpmailer->Username=$cfg['mailuser'];
|
| 366 |
+
$phpmailer->Password=base64_decode($cfg['mailpass']);
|
| 367 |
if (!empty($cfg['mailuser']) and !empty($cfg['mailpass']))
|
| 368 |
$phpmailer->SMTPAuth=true;
|
| 369 |
$phpmailer->IsSMTP();
|
| 376 |
}
|
| 377 |
|
| 378 |
// add all action and so on only if plugin loaded.
|
| 379 |
+
function backwpup_init() {
|
| 380 |
+
//Disabele WP_Corn
|
| 381 |
+
$cfg=get_option('backwpup');
|
| 382 |
+
if ($cfg['disablewpcron'])
|
| 383 |
+
define('DISABLE_WP_CRON',true);
|
| 384 |
//add Menu
|
| 385 |
+
add_action('admin_menu', 'backwpup_menu_entry');
|
| 386 |
//Additional links on the plugin page
|
| 387 |
if (current_user_can(10))
|
| 388 |
+
add_filter('plugin_action_links_'.BACKWPUP_PLUGIN_DIR.'/backwpup.php', 'backwpup_plugin_options_link');
|
| 389 |
if (current_user_can('install_plugins'))
|
| 390 |
+
add_filter('plugin_row_meta', 'backwpup_plugin_links',10,2);
|
| 391 |
//add cron intervals
|
| 392 |
+
add_filter('cron_schedules', 'backwpup_intervals');
|
| 393 |
//Actions for Cron job
|
| 394 |
+
add_action('backwpup_cron', 'backwpup_dojob');
|
| 395 |
//add Dashboard widget
|
| 396 |
if (current_user_can(10))
|
| 397 |
+
add_action('wp_dashboard_setup', 'backwpup_add_dashboard');
|
| 398 |
}
|
|
|
|
| 399 |
|
| 400 |
?>
|
app/options-edit.php
CHANGED
|
@@ -28,6 +28,7 @@ if ($jobs[$jobid]['type']=='FILE') {
|
|
| 28 |
|
| 29 |
|
| 30 |
?>
|
|
|
|
| 31 |
<table class="form-table">
|
| 32 |
|
| 33 |
<tr valign="top">
|
|
@@ -35,8 +36,8 @@ if ($jobs[$jobid]['type']=='FILE') {
|
|
| 35 |
<td>
|
| 36 |
<select name="type" id="job_type">
|
| 37 |
<?php
|
| 38 |
-
foreach (
|
| 39 |
-
echo '<option value="'.$type.'"'.selected($type,$jobs[$jobid]['type'],false).'>'.
|
| 40 |
}
|
| 41 |
?>
|
| 42 |
</select>
|
|
@@ -62,7 +63,7 @@ if (!isset($jobs[$jobid]['dbexclude'])) { //def.
|
|
| 62 |
}
|
| 63 |
foreach ($tables as $table) {
|
| 64 |
if ($wpdb->backwpup_logs<>$table)
|
| 65 |
-
echo ' <input class="checkbox" type="checkbox"'.checked(in_array($table,(array)$jobs[$jobid]['dbexclude']),true,false).' name="dbexclude[]" value="'.$table.'"/>'.$table;
|
| 66 |
}
|
| 67 |
|
| 68 |
?>
|
|
@@ -71,19 +72,19 @@ foreach ($tables as $table) {
|
|
| 71 |
<?PHP if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB+FILE') {?>
|
| 72 |
<?PHP if (!isset($jobs[$jobid]['backuproot'])) $jobs[$jobid]['backuproot']=true; if (!isset($jobs[$jobid]['backupcontent'])) $jobs[$jobid]['backupcontent']=true; if (!isset($jobs[$jobid]['backupplugins'])) $jobs[$jobid]['backupplugins']=true;?>
|
| 73 |
<tr valign="top">
|
| 74 |
-
<th scope="row"><label for="fileinclude"><?PHP _e('Backup Blog
|
| 75 |
<input class="checkbox" type="checkbox"<?php checked($jobs[$jobid]['backuproot'],true,true);?> name="backuproot" value="1"/> <?php _e('Blog root and WP Files','backwpup');?><br />
|
| 76 |
<input class="checkbox" type="checkbox"<?php checked($jobs[$jobid]['backupcontent'],true,true);?> name="backupcontent" value="1"/> <?php _e('Blog Content','backwpup');?><br />
|
| 77 |
<input class="checkbox" type="checkbox"<?php checked($jobs[$jobid]['backupplugins'],true,true);?> name="backupplugins" value="1"/> <?php _e('Blog Plugins','backwpup');?>
|
| 78 |
</td></tr>
|
| 79 |
|
| 80 |
<tr valign="top">
|
| 81 |
-
<th scope="row"><label for="dirinclude"><?PHP _e('Include
|
| 82 |
<input name="dirinclude" type="text" value="<?PHP echo $jobs[$jobid]['dirinclude'];?>" class="regular-text" /><span class="description"><?PHP echo __('Separate with ,. Full Path like:','backwpup').' '.str_replace('\\','/',ABSPATH); ?></span>
|
| 83 |
</td></tr>
|
| 84 |
|
| 85 |
<tr valign="top">
|
| 86 |
-
<th scope="row"><label for="fileexclude"><?PHP _e('Exclude files/
|
| 87 |
<input name="fileexclude" type="text" value="<?PHP echo $jobs[$jobid]['fileexclude'];?>" class="regular-text" /><span class="description"><?PHP _e('Separate with ,','backwpup') ?></span>
|
| 88 |
</td></tr>
|
| 89 |
<?PHP } ?>
|
|
@@ -137,16 +138,15 @@ for ($i=date('Y')-1;$i<=date('Y')+3;$i++) {
|
|
| 137 |
echo '<option value="'.$i.'"'.selected($i,date('Y',$jobs[$jobid]['scheduletime']),false).'>'.$i.'</option>';
|
| 138 |
}
|
| 139 |
echo '</select><br />';
|
| 140 |
-
|
| 141 |
-
_e('Activate
|
| 142 |
-
<input class="checkbox" value="1" type="checkbox" <?php checked($jobs[$jobid]['activated'],true); ?> name="activated" />
|
| 143 |
</td>
|
| 144 |
</tr>
|
| 145 |
|
| 146 |
<?PHP if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='DB+FILE') {?>
|
| 147 |
<tr valign="top">
|
| 148 |
<?PHP if (empty($jobs[$jobid]['backupdir'])) $jobs[$jobid]['backupdir']=str_replace('\\','/',WP_CONTENT_DIR).'/backwpup/';?>
|
| 149 |
-
<th scope="row"><label for="backupdir"><?PHP _e('
|
| 150 |
<td><input name="backupdir" type="text" value="<?PHP echo $jobs[$jobid]['backupdir'];?>" class="regular-text" /><span class="description"><?PHP _e('Full Phath of Directory for Backup fiels','backwpup'); ?></span></td>
|
| 151 |
</tr>
|
| 152 |
<tr valign="top">
|
|
@@ -158,13 +158,13 @@ _e('Activate:', 'backwpup'); ?>
|
|
| 158 |
|
| 159 |
|
| 160 |
<tr valign="top">
|
| 161 |
-
<th scope="row"><label for="ftptransfer"><?PHP _e('
|
| 162 |
<td>
|
| 163 |
<?PHP _e('Ftp Hostname:','backwpup'); ?><input name="ftphost" type="text" value="<?PHP echo $jobs[$jobid]['ftphost'];?>" class="regular-text" /><br />
|
| 164 |
<?PHP _e('Ftp Username:','backwpup'); ?><input name="ftpuser" type="text" value="<?PHP echo $jobs[$jobid]['ftpuser'];?>" class="user" /><br />
|
| 165 |
-
<?PHP _e('Ftp Password:','backwpup'); ?><input name="ftppass" type="password" value="<?PHP echo $jobs[$jobid]['ftppass'];?>" class="password" /><br />
|
| 166 |
<?PHP _e('Ftp directory:','backwpup'); ?><input name="ftpdir" type="text" value="<?PHP echo $jobs[$jobid]['ftpdir'];?>" class="regular-text" /><br />
|
| 167 |
-
<?PHP _e('Max Backup fieles on ftp:','backwpup'); ?><input name="ftpmaxbackups" type="text" value="<?PHP echo $jobs[$jobid]['ftpmaxbackups'];?>" class="small-text"
|
| 168 |
</td>
|
| 169 |
</tr>
|
| 170 |
|
|
@@ -176,9 +176,10 @@ _e('Activate:', 'backwpup'); ?>
|
|
| 176 |
<td><input name="mailaddress" type="text" value="<?PHP echo $jobs[$jobid]['mailaddress'];?>" class="regular-text" /><br />
|
| 177 |
<?PHP
|
| 178 |
if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='DB+FILE') {
|
| 179 |
-
echo __('Max Filesize for Backups via mail:','backwpup').'<input name="mailefilesize" type="text" value="'.$jobs[$jobid]['mailefilesize'].'" class="small-text" />MB <span class="description">'.__('0=send log only.','backwpup').'</span
|
| 180 |
}
|
| 181 |
?>
|
|
|
|
| 182 |
</td>
|
| 183 |
</tr>
|
| 184 |
|
| 28 |
|
| 29 |
|
| 30 |
?>
|
| 31 |
+
|
| 32 |
<table class="form-table">
|
| 33 |
|
| 34 |
<tr valign="top">
|
| 36 |
<td>
|
| 37 |
<select name="type" id="job_type">
|
| 38 |
<?php
|
| 39 |
+
foreach (backwpup_backup_types() as $type) {
|
| 40 |
+
echo '<option value="'.$type.'"'.selected($type,$jobs[$jobid]['type'],false).'>'.backwpup_backup_types($type).'</option>';
|
| 41 |
}
|
| 42 |
?>
|
| 43 |
</select>
|
| 63 |
}
|
| 64 |
foreach ($tables as $table) {
|
| 65 |
if ($wpdb->backwpup_logs<>$table)
|
| 66 |
+
echo ' <input class="checkbox" type="checkbox"'.checked(in_array($table,(array)$jobs[$jobid]['dbexclude']),true,false).' name="dbexclude[]" value="'.$table.'"/> '.$table.'<br />';
|
| 67 |
}
|
| 68 |
|
| 69 |
?>
|
| 72 |
<?PHP if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB+FILE') {?>
|
| 73 |
<?PHP if (!isset($jobs[$jobid]['backuproot'])) $jobs[$jobid]['backuproot']=true; if (!isset($jobs[$jobid]['backupcontent'])) $jobs[$jobid]['backupcontent']=true; if (!isset($jobs[$jobid]['backupplugins'])) $jobs[$jobid]['backupplugins']=true;?>
|
| 74 |
<tr valign="top">
|
| 75 |
+
<th scope="row"><label for="fileinclude"><?PHP _e('Backup Blog directorys','backwpup'); ?></label></th><td>
|
| 76 |
<input class="checkbox" type="checkbox"<?php checked($jobs[$jobid]['backuproot'],true,true);?> name="backuproot" value="1"/> <?php _e('Blog root and WP Files','backwpup');?><br />
|
| 77 |
<input class="checkbox" type="checkbox"<?php checked($jobs[$jobid]['backupcontent'],true,true);?> name="backupcontent" value="1"/> <?php _e('Blog Content','backwpup');?><br />
|
| 78 |
<input class="checkbox" type="checkbox"<?php checked($jobs[$jobid]['backupplugins'],true,true);?> name="backupplugins" value="1"/> <?php _e('Blog Plugins','backwpup');?>
|
| 79 |
</td></tr>
|
| 80 |
|
| 81 |
<tr valign="top">
|
| 82 |
+
<th scope="row"><label for="dirinclude"><?PHP _e('Include directorys','backwpup'); ?></label></th><td>
|
| 83 |
<input name="dirinclude" type="text" value="<?PHP echo $jobs[$jobid]['dirinclude'];?>" class="regular-text" /><span class="description"><?PHP echo __('Separate with ,. Full Path like:','backwpup').' '.str_replace('\\','/',ABSPATH); ?></span>
|
| 84 |
</td></tr>
|
| 85 |
|
| 86 |
<tr valign="top">
|
| 87 |
+
<th scope="row"><label for="fileexclude"><?PHP _e('Exclude files/directorys','backwpup'); ?></label></th><td>
|
| 88 |
<input name="fileexclude" type="text" value="<?PHP echo $jobs[$jobid]['fileexclude'];?>" class="regular-text" /><span class="description"><?PHP _e('Separate with ,','backwpup') ?></span>
|
| 89 |
</td></tr>
|
| 90 |
<?PHP } ?>
|
| 138 |
echo '<option value="'.$i.'"'.selected($i,date('Y',$jobs[$jobid]['scheduletime']),false).'>'.$i.'</option>';
|
| 139 |
}
|
| 140 |
echo '</select><br />';
|
| 141 |
+
?>
|
| 142 |
+
<input class="checkbox" value="1" type="checkbox" <?php checked($jobs[$jobid]['activated'],true); ?> name="activated" /> <?PHP _e('Activate scheduleing', 'backwpup'); ?>
|
|
|
|
| 143 |
</td>
|
| 144 |
</tr>
|
| 145 |
|
| 146 |
<?PHP if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='DB+FILE') {?>
|
| 147 |
<tr valign="top">
|
| 148 |
<?PHP if (empty($jobs[$jobid]['backupdir'])) $jobs[$jobid]['backupdir']=str_replace('\\','/',WP_CONTENT_DIR).'/backwpup/';?>
|
| 149 |
+
<th scope="row"><label for="backupdir"><?PHP _e('Save Backups to directory','backwpup'); ?></label></th>
|
| 150 |
<td><input name="backupdir" type="text" value="<?PHP echo $jobs[$jobid]['backupdir'];?>" class="regular-text" /><span class="description"><?PHP _e('Full Phath of Directory for Backup fiels','backwpup'); ?></span></td>
|
| 151 |
</tr>
|
| 152 |
<tr valign="top">
|
| 158 |
|
| 159 |
|
| 160 |
<tr valign="top">
|
| 161 |
+
<th scope="row"><label for="ftptransfer"><?PHP _e('Copy Backup to FTP Server','backwpup'); ?></label></th>
|
| 162 |
<td>
|
| 163 |
<?PHP _e('Ftp Hostname:','backwpup'); ?><input name="ftphost" type="text" value="<?PHP echo $jobs[$jobid]['ftphost'];?>" class="regular-text" /><br />
|
| 164 |
<?PHP _e('Ftp Username:','backwpup'); ?><input name="ftpuser" type="text" value="<?PHP echo $jobs[$jobid]['ftpuser'];?>" class="user" /><br />
|
| 165 |
+
<?PHP _e('Ftp Password:','backwpup'); ?><input name="ftppass" type="password" value="<?PHP echo base64_decode($jobs[$jobid]['ftppass']);?>" class="password" /><br />
|
| 166 |
<?PHP _e('Ftp directory:','backwpup'); ?><input name="ftpdir" type="text" value="<?PHP echo $jobs[$jobid]['ftpdir'];?>" class="regular-text" /><br />
|
| 167 |
+
<?PHP _e('Max Backup fieles on ftp:','backwpup'); ?><input name="ftpmaxbackups" type="text" value="<?PHP echo $jobs[$jobid]['ftpmaxbackups'];?>" class="small-text" /><span class="description"><?PHP _e('0=off','backwpup');?></span><br />
|
| 168 |
</td>
|
| 169 |
</tr>
|
| 170 |
|
| 176 |
<td><input name="mailaddress" type="text" value="<?PHP echo $jobs[$jobid]['mailaddress'];?>" class="regular-text" /><br />
|
| 177 |
<?PHP
|
| 178 |
if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='DB+FILE') {
|
| 179 |
+
echo __('Max Filesize for Backups via mail:','backwpup').'<input name="mailefilesize" type="text" value="'.$jobs[$jobid]['mailefilesize'].'" class="small-text" />MB <span class="description">'.__('0=send log only.','backwpup').'</span><br />';
|
| 180 |
}
|
| 181 |
?>
|
| 182 |
+
<input class="checkbox" value="1" type="checkbox" <?php checked($jobs[$jobid]['mailerroronly'],true); ?> name="mailerroronly" /> <?PHP _e('Send only mail on errors.','backwpup'); ?>
|
| 183 |
</td>
|
| 184 |
</tr>
|
| 185 |
|
app/options-logs.php
CHANGED
|
@@ -64,7 +64,7 @@
|
|
| 64 |
<td class="column-id"><?PHP echo $logvalue['jobid'];?></td>
|
| 65 |
<td class="column-type">
|
| 66 |
<?PHP
|
| 67 |
-
|
| 68 |
?>
|
| 69 |
</td>
|
| 70 |
<td class="name column-log">
|
|
@@ -99,7 +99,7 @@
|
|
| 99 |
<td class="column-size">
|
| 100 |
<?PHP
|
| 101 |
if (!empty($logvalue['backupfile']) and is_file($logvalue['backupfile'])) {
|
| 102 |
-
echo
|
| 103 |
} else {
|
| 104 |
_e('only Log','backwpup');
|
| 105 |
}
|
| 64 |
<td class="column-id"><?PHP echo $logvalue['jobid'];?></td>
|
| 65 |
<td class="column-type">
|
| 66 |
<?PHP
|
| 67 |
+
backwpup_backup_types($logvalue['type'],true);
|
| 68 |
?>
|
| 69 |
</td>
|
| 70 |
<td class="name column-log">
|
| 99 |
<td class="column-size">
|
| 100 |
<?PHP
|
| 101 |
if (!empty($logvalue['backupfile']) and is_file($logvalue['backupfile'])) {
|
| 102 |
+
echo backwpup_formatBytes(filesize($logvalue['backupfile']));
|
| 103 |
} else {
|
| 104 |
_e('only Log','backwpup');
|
| 105 |
}
|
app/options-runnow.php
CHANGED
|
@@ -9,5 +9,5 @@
|
|
| 9 |
</ul>
|
| 10 |
<br class="clear" />
|
| 11 |
<pre>
|
| 12 |
-
<?PHP
|
| 13 |
</pre>
|
| 9 |
</ul>
|
| 10 |
<br class="clear" />
|
| 11 |
<pre>
|
| 12 |
+
<?PHP backwpup_dojob($jobid); ?>
|
| 13 |
</pre>
|
app/options-save.php
CHANGED
|
@@ -1,123 +1,152 @@
|
|
| 1 |
<?php
|
|
|
|
|
|
|
| 2 |
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
unset($jobs[$jobid]);
|
| 8 |
-
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 9 |
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 10 |
wp_unschedule_event($time,'backwpup_cron',array('jobid'=>$jobid));
|
| 11 |
}
|
| 12 |
}
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
if (is_file($backupfile))
|
| 18 |
unlink($backupfile);
|
| 19 |
-
$wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$
|
| 20 |
-
}
|
| 21 |
-
|
| 22 |
-
function copy_job($jobid) {
|
| 23 |
-
$jobs=get_option('backwpup_jobs'); //Load Settings
|
| 24 |
-
|
| 25 |
-
//generate new ID
|
| 26 |
-
foreach ($jobs as $jobkey => $jobvalue) {
|
| 27 |
-
if ($jobkey>$heighestid) $heighestid=$jobkey;
|
| 28 |
-
}
|
| 29 |
-
$newjobid=$heighestid+1;
|
| 30 |
-
|
| 31 |
-
$jobs[$newjobid]=$jobs[$jobid];
|
| 32 |
-
$jobs[$newjobid]['name']=__('Copy of','backwpup').' '.$jobs[$newjobid]['name'];
|
| 33 |
-
$jobs[$newjobid]['activated']=false;
|
| 34 |
-
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 35 |
}
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
header("Content-Disposition: attachment; filename=".basename($backupfile).";");
|
| 61 |
-
header("Content-Transfer-Encoding: binary");
|
| 62 |
-
header("Content-Length: ".filesize($backupfile));
|
| 63 |
-
@readfile($backupfile);
|
| 64 |
-
} else {
|
| 65 |
-
header('HTTP/1.0 404 Not Found');
|
| 66 |
-
die(__('File does not exist.', 'backwpup'));
|
| 67 |
-
}
|
| 68 |
}
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
}
|
| 78 |
-
$jobid=$heighestid+1;
|
| 79 |
-
} else {
|
| 80 |
-
$jobid=1;
|
| 81 |
}
|
|
|
|
|
|
|
|
|
|
| 82 |
}
|
|
|
|
| 83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
$
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
$jobs[$jobid]['
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
$
|
| 94 |
-
$
|
| 95 |
-
|
| 96 |
-
$
|
| 97 |
-
$jobs[$jobid]['fileexclude']=str_replace('\\','/',stripslashes($_POST['fileexclude']));
|
| 98 |
-
$jobs[$jobid]['dirinclude']=str_replace('\\','/',stripslashes($_POST['dirinclude']));
|
| 99 |
-
$jobs[$jobid]['backuproot']= $_POST['backuproot']==1 ? true : false;
|
| 100 |
-
$jobs[$jobid]['backupcontent']= $_POST['backupcontent']==1 ? true : false;
|
| 101 |
-
$jobs[$jobid]['backupplugins']= $_POST['backupplugins']==1 ? true : false;
|
| 102 |
-
$jobs[$jobid]['ftphost']=$_POST['ftphost'];
|
| 103 |
-
$jobs[$jobid]['ftpuser']=$_POST['ftpuser'];
|
| 104 |
-
$jobs[$jobid]['ftppass']=$_POST['ftppass'];
|
| 105 |
-
$jobs[$jobid]['ftpdir']=str_replace('\\','/',stripslashes($_POST['ftpdir']));
|
| 106 |
-
$jobs[$jobid]['ftpmaxbackups']=abs((int)$_POST['ftpmaxbackups']);
|
| 107 |
-
|
| 108 |
-
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 109 |
-
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 110 |
-
wp_unschedule_event($time,'backwpup_cron',array('jobid'=>$jobid));
|
| 111 |
-
}
|
| 112 |
-
if ($jobs[$jobid]['activated']) {
|
| 113 |
-
wp_schedule_event($jobs[$jobid]['scheduletime'], 'backwpup_int_'.$jobid, 'backwpup_cron',array('jobid'=>$jobid));
|
| 114 |
-
}
|
| 115 |
-
if (!empty($_POST['change'])) {
|
| 116 |
-
$_REQUEST['action']='edit';
|
| 117 |
-
$_REQUEST['jobid']=$jobid;
|
| 118 |
-
} else {
|
| 119 |
-
$_REQUEST['action']='';
|
| 120 |
-
}
|
| 121 |
}
|
| 122 |
-
|
|
|
|
| 123 |
?>
|
| 1 |
<?php
|
| 2 |
+
if ($_REQUEST['action2']!='-1' and !empty($_REQUEST['doaction2']))
|
| 3 |
+
$_REQUEST['action']=$_REQUEST['action2'];
|
| 4 |
|
| 5 |
+
switch($_REQUEST['action']) {
|
| 6 |
+
case 'delete': //Delete Job
|
| 7 |
+
$jobs=get_option('backwpup_jobs');
|
| 8 |
+
if (is_Array($_POST['jobs'])) {
|
| 9 |
+
check_admin_referer('actions-jobs');
|
| 10 |
+
foreach ($_POST['jobs'] as $jobid) {
|
| 11 |
+
unset($jobs[$jobid]);
|
| 12 |
+
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 13 |
+
wp_unschedule_event($time,'backwpup_cron',array('jobid'=>$jobid));
|
| 14 |
+
}
|
| 15 |
+
}
|
| 16 |
+
} else {
|
| 17 |
+
$jobid = (int) $_GET['jobid'];
|
| 18 |
+
check_admin_referer('delete-job_' . $jobid);
|
| 19 |
unset($jobs[$jobid]);
|
|
|
|
| 20 |
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 21 |
wp_unschedule_event($time,'backwpup_cron',array('jobid'=>$jobid));
|
| 22 |
}
|
| 23 |
}
|
| 24 |
+
update_option('backwpup_jobs',$jobs);
|
| 25 |
+
$_REQUEST['action']='';
|
| 26 |
+
break;
|
| 27 |
+
case 'delete-logs': //Delete Log
|
| 28 |
+
if (is_Array($_POST['logs'])) {
|
| 29 |
+
check_admin_referer('actions-logs');
|
| 30 |
+
foreach ($_POST['logs'] as $timestamp) {
|
| 31 |
+
$backupfile=$wpdb->get_var("SELECT backupfile FROM ".$wpdb->backwpup_logs." WHERE logtime=".$timestamp);
|
| 32 |
+
if (is_file($backupfile))
|
| 33 |
+
unlink($backupfile);
|
| 34 |
+
$wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$timestamp);
|
| 35 |
+
}
|
| 36 |
+
} else {
|
| 37 |
+
$timestamp = (int) $_GET['log'];
|
| 38 |
+
check_admin_referer('delete-log_' . $timestamp);
|
| 39 |
+
$backupfile=$wpdb->get_var("SELECT backupfile FROM ".$wpdb->backwpup_logs." WHERE logtime=".$timestamp);
|
| 40 |
if (is_file($backupfile))
|
| 41 |
unlink($backupfile);
|
| 42 |
+
$wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$timestamp);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
}
|
| 44 |
+
$_REQUEST['action']='logs';
|
| 45 |
+
break;
|
| 46 |
+
case 'savecfg': //Save config form Setings page
|
| 47 |
+
check_admin_referer('backwpup-cfg');
|
| 48 |
+
$cfg=get_option('backwpup'); //Load Settings
|
| 49 |
+
$cfg['mailmethod']=$_POST['mailmethod'];
|
| 50 |
+
$cfg['mailsendmail']=str_replace('\\','/',stripslashes($_POST['mailsendmail']));
|
| 51 |
+
$cfg['mailsecure']=$_POST['mailsecure'];
|
| 52 |
+
$cfg['mailhost']=$_POST['mailhost'];
|
| 53 |
+
$cfg['mailuser']=$_POST['mailuser'];
|
| 54 |
+
$cfg['mailpass']=base64_encode($_POST['mailpass']);
|
| 55 |
+
$cfg['memorylimit']=$_POST['memorylimit'];
|
| 56 |
+
$cfg['maxexecutiontime']=$_POST['maxexecutiontime'];
|
| 57 |
+
$cfg['disablewpcron']=$_POST['disablewpcron']==1 ? true : false;
|
| 58 |
+
update_option('backwpup',$cfg); //Save Settings
|
| 59 |
+
$_REQUEST['action']='settings';
|
| 60 |
+
break;
|
| 61 |
+
case 'copy': //Copy Job
|
| 62 |
+
$jobid = (int) $_GET['jobid'];
|
| 63 |
+
check_admin_referer('copy-job_'.$jobid);
|
| 64 |
+
$jobs=get_option('backwpup_jobs');
|
| 65 |
+
//generate new ID
|
| 66 |
+
foreach ($jobs as $jobkey => $jobvalue) {
|
| 67 |
+
if ($jobkey>$heighestid) $heighestid=$jobkey;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
}
|
| 69 |
+
$newjobid=$heighestid+1;
|
| 70 |
+
$jobs[$newjobid]=$jobs[$jobid];
|
| 71 |
+
$jobs[$newjobid]['name']=__('Copy of','backwpup').' '.$jobs[$newjobid]['name'];
|
| 72 |
+
$jobs[$newjobid]['activated']=false;
|
| 73 |
+
update_option('backwpup_jobs',$jobs);
|
| 74 |
+
$_REQUEST['action']='';
|
| 75 |
+
break;
|
| 76 |
+
case 'download': //Download Backup
|
| 77 |
+
$log = (int) $_GET['log'];
|
| 78 |
+
check_admin_referer('download-backup_'.$log);
|
| 79 |
+
$backupfile=$wpdb->get_var("SELECT backupfile FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime);
|
| 80 |
+
if (is_file($backupfile)) {
|
| 81 |
+
header("Pragma: public");
|
| 82 |
+
header("Expires: 0");
|
| 83 |
+
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
| 84 |
+
header("Content-Type: application/force-download");
|
| 85 |
+
header("Content-Type: application/octet-stream");
|
| 86 |
+
header("Content-Type: application/download");
|
| 87 |
+
header("Content-Disposition: attachment; filename=".basename($backupfile).";");
|
| 88 |
+
header("Content-Transfer-Encoding: binary");
|
| 89 |
+
header("Content-Length: ".filesize($backupfile));
|
| 90 |
+
@readfile($backupfile);
|
| 91 |
+
} else {
|
| 92 |
+
header('HTTP/1.0 404 Not Found');
|
| 93 |
+
die(__('File does not exist.', 'backwpup'));
|
| 94 |
+
}
|
| 95 |
+
$_REQUEST['action']='logs';
|
| 96 |
+
break;
|
| 97 |
+
case 'saveeditjob': //Save Job settings
|
| 98 |
+
$jobid = (int) $_POST['jobid'];
|
| 99 |
+
check_admin_referer('edit-job');
|
| 100 |
+
$jobs=get_option('backwpup_jobs'); //Load Settings
|
| 101 |
|
| 102 |
+
if (empty($jobid)) { //generate a new id for new job
|
| 103 |
+
if (is_array($jobs)) {
|
| 104 |
+
foreach ($jobs as $jobkey => $jobvalue) {
|
| 105 |
+
if ($jobkey>$heighestid) $heighestid=$jobkey;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
}
|
| 107 |
+
$jobid=$heighestid+1;
|
| 108 |
+
} else {
|
| 109 |
+
$jobid=1;
|
| 110 |
}
|
| 111 |
+
}
|
| 112 |
|
| 113 |
+
$jobs[$jobid]['type']= $_POST['type'];
|
| 114 |
+
$jobs[$jobid]['name']= esc_html($_POST['name']);
|
| 115 |
+
$jobs[$jobid]['activated']= $_POST['activated']==1 ? true : false;
|
| 116 |
+
$jobs[$jobid]['scheduletime']=mktime($_POST['schedulehour'],$_POST['scheduleminute'],0,$_POST['schedulemonth'],$_POST['scheduleday'],$_POST['scheduleyear']);
|
| 117 |
+
$jobs[$jobid]['scheduleintervaltype']=$_POST['scheduleintervaltype'];
|
| 118 |
+
$jobs[$jobid]['scheduleintervalteimes']=$_POST['scheduleintervalteimes'];
|
| 119 |
+
$jobs[$jobid]['scheduleinterval']=$_POST['scheduleintervaltype']*$_POST['scheduleintervalteimes'];
|
| 120 |
+
$jobs[$jobid]['backupdir']= untrailingslashit(str_replace('\\','/',stripslashes($_POST['backupdir'])));
|
| 121 |
+
$jobs[$jobid]['maxbackups']=abs((int)$_POST['maxbackups']);
|
| 122 |
+
$jobs[$jobid]['mailaddress']=sanitize_email($_POST['mailaddress']);
|
| 123 |
+
$jobs[$jobid]['mailefilesize']=(float)$_POST['mailefilesize'];
|
| 124 |
+
$jobs[$jobid]['dbexclude']=array_unique((array)$_POST['dbexclude']);
|
| 125 |
+
$jobs[$jobid]['fileexclude']=str_replace('\\','/',stripslashes($_POST['fileexclude']));
|
| 126 |
+
$jobs[$jobid]['dirinclude']=str_replace('\\','/',stripslashes($_POST['dirinclude']));
|
| 127 |
+
$jobs[$jobid]['backuproot']= $_POST['backuproot']==1 ? true : false;
|
| 128 |
+
$jobs[$jobid]['backupcontent']= $_POST['backupcontent']==1 ? true : false;
|
| 129 |
+
$jobs[$jobid]['backupplugins']= $_POST['backupplugins']==1 ? true : false;
|
| 130 |
+
$jobs[$jobid]['mailerroronly']= $_POST['mailerroronly']==1 ? true : false;
|
| 131 |
+
$jobs[$jobid]['ftphost']=$_POST['ftphost'];
|
| 132 |
+
$jobs[$jobid]['ftpuser']=$_POST['ftpuser'];
|
| 133 |
+
$jobs[$jobid]['ftppass']=base64_encode($_POST['ftppass']);
|
| 134 |
+
$jobs[$jobid]['ftpdir']=str_replace('\\','/',stripslashes($_POST['ftpdir']));
|
| 135 |
+
$jobs[$jobid]['ftpmaxbackups']=abs((int)$_POST['ftpmaxbackups']);
|
| 136 |
|
| 137 |
+
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 138 |
+
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 139 |
+
wp_unschedule_event($time,'backwpup_cron',array('jobid'=>$jobid));
|
| 140 |
+
}
|
| 141 |
+
if ($jobs[$jobid]['activated']) {
|
| 142 |
+
wp_schedule_event($jobs[$jobid]['scheduletime'], 'backwpup_int_'.$jobid, 'backwpup_cron',array('jobid'=>$jobid));
|
| 143 |
+
}
|
| 144 |
+
if (!empty($_POST['change'])) {
|
| 145 |
+
$_REQUEST['action']='edit';
|
| 146 |
+
$_REQUEST['jobid']=$jobid;
|
| 147 |
+
} else {
|
| 148 |
+
$_REQUEST['action']='';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
}
|
| 150 |
+
break;
|
| 151 |
+
}
|
| 152 |
?>
|
app/options-settings.php
CHANGED
|
@@ -76,10 +76,20 @@ if (!empty($cfg['mailsendmail']))
|
|
| 76 |
$cfg['mailsendmail']='/usr/sbin/sendmail';
|
| 77 |
?><br />
|
| 78 |
<?PHP _e('SMTP Username:','backwpup'); ?><input name="mailuser" type="text" value="<?PHP echo $cfg['mailuser'];?>" class="user" /><br />
|
| 79 |
-
<?PHP _e('SMTP Password:','backwpup'); ?><input name="mailpass" type="password" value="<?PHP echo $cfg['mailpass'];?>" class="password" /><br />
|
| 80 |
</td>
|
| 81 |
</tr>
|
| 82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
|
| 84 |
</table>
|
| 85 |
|
| 76 |
$cfg['mailsendmail']='/usr/sbin/sendmail';
|
| 77 |
?><br />
|
| 78 |
<?PHP _e('SMTP Username:','backwpup'); ?><input name="mailuser" type="text" value="<?PHP echo $cfg['mailuser'];?>" class="user" /><br />
|
| 79 |
+
<?PHP _e('SMTP Password:','backwpup'); ?><input name="mailpass" type="password" value="<?PHP echo base64_decode($cfg['mailpass']);?>" class="password" /><br />
|
| 80 |
</td>
|
| 81 |
</tr>
|
| 82 |
|
| 83 |
+
<tr valign="top">
|
| 84 |
+
<th scope="row"><label for="jobname"><?PHP _e('Disable WP-Cron:','backwpup'); ?></label></th>
|
| 85 |
+
<td>
|
| 86 |
+
<input class="checkbox" type="checkbox"<?php checked($cfg['disablewpcron'],true,true);?> name="disablewpcron" value="1"/>
|
| 87 |
+
<?PHP _e('Use Cron job of Hoster and disable WP_Cron','backwpup'); ?><br />
|
| 88 |
+
<?PHP _e('You must set up a cron job that calls:','backwpup'); ?><br />
|
| 89 |
+
<i> php -q <?PHP echo ABSPATH.'wp-cron.php'; ?></i><br />
|
| 90 |
+
<?PHP _e('or URL:','backwpup'); ?> <i><?PHP echo trailingslashit(get_option('siteurl')).'wp-cron.php'; ?></i><br />
|
| 91 |
+
</td>
|
| 92 |
+
</tr>
|
| 93 |
|
| 94 |
</table>
|
| 95 |
|
app/options.php
CHANGED
|
@@ -68,7 +68,7 @@
|
|
| 68 |
</td>
|
| 69 |
<td class="column-type">
|
| 70 |
<?PHP
|
| 71 |
-
|
| 72 |
?>
|
| 73 |
</td>
|
| 74 |
<td class="column-next">
|
| 68 |
</td>
|
| 69 |
<td class="column-type">
|
| 70 |
<?PHP
|
| 71 |
+
backwpup_backup_types($jobvalue['type'],true);
|
| 72 |
?>
|
| 73 |
</td>
|
| 74 |
<td class="column-next">
|
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üsken
|
| 7 |
-
Version: 0.6.
|
| 8 |
Author URI: http://danielhuesken.de
|
| 9 |
Text Domain: backwpup
|
| 10 |
Domain Path: /lang/
|
|
@@ -28,11 +28,10 @@ Domain Path: /lang/
|
|
| 28 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
| 29 |
*/
|
| 30 |
|
| 31 |
-
|
| 32 |
//Set plugin dirname
|
| 33 |
define('BACKWPUP_PLUGIN_DIR', dirname(plugin_basename(__FILE__)));
|
| 34 |
//Set Plugin Version
|
| 35 |
-
define('BACKWPUP_VERSION', '0.6.
|
| 36 |
//BackWPup Log Table Name
|
| 37 |
global $wpdb;
|
| 38 |
$wpdb->backwpup_logs = $wpdb->prefix.'backwpup_logs';
|
|
@@ -42,17 +41,17 @@ load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_DIR.'/lang');
|
|
| 42 |
//Load functions file
|
| 43 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/functions.php');
|
| 44 |
//Plugin activate
|
| 45 |
-
register_activation_hook(__FILE__,
|
| 46 |
//Plugin deactivate
|
| 47 |
-
register_deactivation_hook(__FILE__,
|
| 48 |
//Plugin uninstall
|
| 49 |
-
register_uninstall_hook(__FILE__,
|
| 50 |
|
| 51 |
//Version check
|
| 52 |
if (version_compare($wp_version, '2.8', '<')) { // Let only Activate on WordPress Version 2.8 or heiger
|
| 53 |
add_action('admin_notices', create_function('', 'echo \'<div id="message" class="error fade"><p><strong>' . __('Sorry, BackWPup works only under WordPress 2.8 or higher','backwpup') . '</strong></p></div>\';'));
|
| 54 |
} else {
|
| 55 |
//Plugin init
|
| 56 |
-
add_action('plugins_loaded',
|
| 57 |
}
|
| 58 |
?>
|
| 4 |
Plugin URI: http://danielhuesken.de/portfolio/backwpup/
|
| 5 |
Description: Backup and more of your WordPress Blog Database and Files.
|
| 6 |
Author: Daniel Hüsken
|
| 7 |
+
Version: 0.6.3
|
| 8 |
Author URI: http://danielhuesken.de
|
| 9 |
Text Domain: backwpup
|
| 10 |
Domain Path: /lang/
|
| 28 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
| 29 |
*/
|
| 30 |
|
|
|
|
| 31 |
//Set plugin dirname
|
| 32 |
define('BACKWPUP_PLUGIN_DIR', dirname(plugin_basename(__FILE__)));
|
| 33 |
//Set Plugin Version
|
| 34 |
+
define('BACKWPUP_VERSION', '0.6.3');
|
| 35 |
//BackWPup Log Table Name
|
| 36 |
global $wpdb;
|
| 37 |
$wpdb->backwpup_logs = $wpdb->prefix.'backwpup_logs';
|
| 41 |
//Load functions file
|
| 42 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/functions.php');
|
| 43 |
//Plugin activate
|
| 44 |
+
register_activation_hook(__FILE__, 'backwpup_plugin_activate');
|
| 45 |
//Plugin deactivate
|
| 46 |
+
register_deactivation_hook(__FILE__, 'backwpup_plugin_deactivate');
|
| 47 |
//Plugin uninstall
|
| 48 |
+
register_uninstall_hook(__FILE__, 'backwpup_plugin_uninstall');
|
| 49 |
|
| 50 |
//Version check
|
| 51 |
if (version_compare($wp_version, '2.8', '<')) { // Let only Activate on WordPress Version 2.8 or heiger
|
| 52 |
add_action('admin_notices', create_function('', 'echo \'<div id="message" class="error fade"><p><strong>' . __('Sorry, BackWPup works only under WordPress 2.8 or higher','backwpup') . '</strong></p></div>\';'));
|
| 53 |
} else {
|
| 54 |
//Plugin init
|
| 55 |
+
add_action('plugins_loaded', 'backwpup_init');
|
| 56 |
}
|
| 57 |
?>
|
readme.txt
CHANGED
|
@@ -3,8 +3,8 @@ 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¤cy_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.
|
| 7 |
-
Stable tag: 0.6.
|
| 8 |
|
| 9 |
Backup and more of your WordPress Blog Database and Files
|
| 10 |
|
|
@@ -48,6 +48,13 @@ You must import the Database Dump with Charaktercoding:latin1
|
|
| 48 |
1. Job Page
|
| 49 |
|
| 50 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
= 0.6.2 =
|
| 52 |
* Added setting for memory_limit if needed
|
| 53 |
* Added setting for max. script execution time
|
| 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¤cy_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.2
|
| 7 |
+
Stable tag: 0.6.3
|
| 8 |
|
| 9 |
Backup and more of your WordPress Blog Database and Files
|
| 10 |
|
| 48 |
1. Job Page
|
| 49 |
|
| 50 |
== Changelog ==
|
| 51 |
+
= 0.6.3 =
|
| 52 |
+
* use ftp_row for login and other commands
|
| 53 |
+
* Add option to send only email on erros
|
| 54 |
+
* Internal struckture changes
|
| 55 |
+
* Add option to diesable WP-Cron and use Hoster cron
|
| 56 |
+
* bug fixes
|
| 57 |
+
|
| 58 |
= 0.6.2 =
|
| 59 |
* Added setting for memory_limit if needed
|
| 60 |
* Added setting for max. script execution time
|
