Пример #1
0
 public function setBestReloadMethod()
 {
     $method = SG_RELOAD_METHOD_NONE;
     if (function_exists('curl_version')) {
         $method = SG_RELOAD_METHOD_CURL;
     } else {
         if ($this->testStreamConnection()) {
             $method = SG_RELOAD_METHOD_STREAM;
         } else {
             if ($this->testSocketConnection()) {
                 $method = SG_RELOAD_METHOD_SOCKET;
             }
         }
     }
     SGConfig::set('SG_RELOAD_METHOD', $method, true);
     $this->reloadMethod = $method;
 }
Пример #2
0
<?php

require_once dirname(__FILE__) . '/../boot.php';
require_once SG_BACKUP_PATH . 'SGBackup.php';
if (isAjax() && count($_POST)) {
    //Unset Active Options
    $activeOptions = array('database' => 0, 'files' => 0, 'ftp' => 0, 'gdrive' => 0, 'dropbox' => 0, 'background' => 0);
    SGConfig::set('SG_ACTIVE_BACKUP_OPTIONS', json_encode($activeOptions));
    //Getting Backup Name
    $backupName = $_POST['bname'];
    $backup = new SGBackup();
    $backup->restore($backupName);
}
Пример #3
0
<?php

require_once dirname(__FILE__) . '/../boot.php';
require_once SG_BACKUP_PATH . 'SGBackup.php';
if (isAjax()) {
    $error = array();
    try {
        //Check if any running action
        $runningAction = getRunningActions();
        if ($runningAction) {
            throw new SGException(_t('There is already another process running.', true));
        }
        @unlink(SG_BACKUP_DIRECTORY . 'sg_backup.state');
        SGConfig::set('SG_RUNNING_ACTION', 0, true);
        die('{"success":1}');
    } catch (SGException $exception) {
        array_push($error, $exception->getMessage());
        die(json_encode($error));
    }
}
Пример #4
0
$error = array();
$success = array('success' => 1);
if (isAjax() && isset($_POST['cancel'])) {
    SGConfig::set('SG_NOTIFICATIONS_ENABLED', 0);
    SGConfig::set('SG_NOTIFICATIONS_EMAIL_ADDRESS', '');
    die(json_encode($success));
}
if (isAjax() && count($_POST)) {
    if (isset($_POST['sgIsEmailNotification'])) {
        $email = '';
        $email = @$_POST['sgUserEmail'];
        if (empty($email)) {
            array_push($error, _t('Email is required.', true));
        }
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            array_push($error, _t('Invalid email address.', true));
        }
    }
    $ajaxInterval = (int) $_POST['ajaxInterval'];
    if (count($error)) {
        die(json_decode($error));
    }
    SGConfig::set('SG_SEND_ANONYMOUS_STATISTICS', 0);
    if (isset($_POST['sgAnonymousStatistics'])) {
        SGConfig::set('SG_SEND_ANONYMOUS_STATISTICS', true);
    }
    SGConfig::set('SG_AJAX_REQUEST_FREQUENCY', $ajaxInterval);
    SGConfig::set('SG_NOTIFICATIONS_ENABLED', 1);
    SGConfig::set('SG_NOTIFICATIONS_EMAIL_ADDRESS', $email);
    die(json_encode($success));
}
Пример #5
0
 private function prepareForRestore($backupName)
 {
     //prepare file name
     $this->fileName = $backupName;
     //set paths
     $restorePath = SG_BACKUP_DIRECTORY . $this->fileName;
     $this->filesBackupPath = $restorePath . '/' . $this->fileName . '.sgbp';
     $this->databaseBackupPath = $restorePath . '/' . $this->fileName . '.sql';
     //prepare folder
     $this->prepareRestoreFolder($restorePath);
     //start logging
     SGBackupLog::writeAction('restore', SG_BACKUP_LOG_POS_START);
     SGConfig::set('SG_RUNNING_ACTION', 1, true);
     //save timestamp for future use
     $this->actionStartTs = time();
     //create action inside db
     $this->actionId = self::createAction($this->fileName, SG_ACTION_TYPE_RESTORE, SG_ACTION_STATUS_IN_PROGRESS_FILES);
     //register shutdown function (used for handling execution time limits)
     register_shutdown_function('shutdownAction', $this->actionId, SG_ACTION_TYPE_RESTORE, $this->filesBackupPath, $this->databaseBackupPath, $this);
 }
Пример #6
0
<?php

require_once dirname(__FILE__) . '/../boot.php';
if (isAjax() && count($_POST)) {
    $state = (int) $_POST['reviewState'];
    SGConfig::set('SG_REVIEW_POPUP_STATE', $state);
    die('0');
}
Пример #7
0
function getReport()
{
    $jsonArray = array();
    $headerArray = array();
    $jsonArray['ptype'] = '1';
    $jsonArray['token'] = '28016ffb35b451291bfed7c5905474d6';
    $lastReportTime = SGConfig::get('SG_LAST_REPORT_DATE');
    if (!$lastReportTime) {
        SGConfig::set('SG_LAST_REPORT_DATE', time());
    }
    SGBackup::getLogFileHeader($headerArray);
    $jsonArray['header'] = $headerArray;
    $jsonArray['header']['uid'] = sha1("http://" . @$_SERVER[HTTP_HOST] . @$_SERVER[REQUEST_URI]);
    $sgdb = SGDatabase::getInstance();
    $res = $sgdb->query('SELECT type, subtype, status, count(*) AS scount FROM ' . SG_ACTION_TABLE_NAME . ' WHERE update_date > FROM_UNIXTIME(%d) GROUP BY type, subtype, status', array($lastReportTime));
    if (count($res)) {
        foreach ($res as $item) {
            $jsonArray['log'][] = $item;
        }
    }
    return json_encode($jsonArray);
}
Пример #8
0
function backup_guard_schedule()
{
    if (@in_array('wp-content', $_POST['directory'])) {
        $_POST['directory'] = array('wp-content');
    }
    if ($_POST['backupType'] == SG_BACKUP_TYPE_FULL) {
        SGConfig::set('SG_BACKUP_FILE_PATHS', 'wp-content', false);
    }
    require_once SG_PUBLIC_AJAX_PATH . 'schedule.php';
}
Пример #9
0
function setManualBackupOptions($options)
{
    $activeOptions = array('backupDatabase' => 0, 'backupFiles' => 0, 'ftp' => 0, 'gdrive' => 0, 'dropbox' => 0, 'background' => 0);
    //If background mode
    $isBackgroundMode = !empty($options['backgroundMode']) ? 1 : 0;
    SGConfig::set('SG_BACKUP_IN_BACKGROUND_MODE', $isBackgroundMode, false);
    $activeOptions['background'] = $isBackgroundMode;
    //If cloud backup
    if (!empty($options['backupCloud']) && count($options['backupStorages'])) {
        $clouds = $activeOptions['backupStorages'] = $options['backupStorages'];
        SGConfig::set('SG_BACKUP_UPLOAD_TO_STORAGES', implode(',', $clouds), false);
        $activeOptions['backupCloud'] = $options['backupCloud'];
        $activeOptions['gdrive'] = in_array(SG_STORAGE_GOOGLE_DRIVE, $options['backupStorages']) ? 1 : 0;
        $activeOptions['ftp'] = in_array(SG_STORAGE_FTP, $options['backupStorages']) ? 1 : 0;
        $activeOptions['dropbox'] = in_array(SG_STORAGE_DROPBOX, $options['backupStorages']) ? 1 : 0;
    }
    $activeOptions['backupType'] = $options['backupType'];
    if ($options['backupType'] == SG_BACKUP_TYPE_FULL) {
        SGConfig::set('SG_ACTION_BACKUP_DATABASE_AVAILABLE', 1, false);
        SGConfig::set('SG_ACTION_BACKUP_FILES_AVAILABLE', 1, false);
        SGConfig::set('SG_BACKUP_FILE_PATHS', 'wp-content', false);
        $activeOptions['backupDatabase'] = 1;
        $activeOptions['backupFiles'] = 1;
    } else {
        if ($options['backupType'] == SG_BACKUP_TYPE_CUSTOM) {
            //If database backup
            $isDatabaseBackup = !empty($options['backupDatabase']) ? 1 : 0;
            SGConfig::set('SG_ACTION_BACKUP_DATABASE_AVAILABLE', $isDatabaseBackup, false);
            $activeOptions['backupDatabase'] = $isDatabaseBackup;
            //If files backup
            if (@in_array('wp-content', $options['directory'])) {
                SGConfig::set('SG_ACTION_BACKUP_FILES_AVAILABLE', 1, false);
                SGConfig::set('SG_BACKUP_FILE_PATHS', 'wp-content', false);
                $activeOptions['backupFiles'] = 1;
            } else {
                if (!empty($options['backupFiles']) && count($options['directory'])) {
                    $directories = $options['directory'];
                    SGConfig::set('SG_ACTION_BACKUP_FILES_AVAILABLE', 1, false);
                    SGConfig::set('SG_BACKUP_FILE_PATHS', implode(',', $directories), false);
                    $activeOptions['backupFiles'] = 1;
                    $activeOptions['directory'] = $directories;
                } else {
                    SGConfig::set('SG_ACTION_BACKUP_FILES_AVAILABLE', 0, false);
                    SGConfig::set('SG_BACKUP_FILE_PATHS', 0, false);
                }
            }
        }
    }
    SGConfig::set('SG_ACTIVE_BACKUP_OPTIONS', json_encode($activeOptions));
}
Пример #10
0
    ?>
                        </td>
                    </tr>
                <?php 
}
?>
                </tbody>
            </table>
            <div class="text-right">
                <ul class="pagination"></ul>
            </div>
        </fieldset>
    </div>
    <?php 
require_once SG_PUBLIC_INCLUDE_PATH . '/footer.php';
?>
    <?php 
if (time() - SGConfig::get('SG_LAST_REPORT_DATE') > SG_REPORT_INTERVAL && SGConfig::get('SG_SEND_ANONYMOUS_STATISTICS') !== '0') {
    $report = base64_encode(getReport());
    SGConfig::set('SG_LAST_REPORT_DATE', time());
    ?>
        <script type="text/javascript">jQuery.post('https://backup-guard.com/tms/api', {report: "<?php 
    echo $report;
    ?>
"});</script>
    <?php 
}
?>
</div>
<div class="clearfix"></div>