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; }
<?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); }
<?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)); } }
$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)); }
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); }
<?php require_once dirname(__FILE__) . '/../boot.php'; if (isAjax() && count($_POST)) { $state = (int) $_POST['reviewState']; SGConfig::set('SG_REVIEW_POPUP_STATE', $state); die('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); }
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'; }
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)); }
?> </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>