%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emergentqj/jugement/wp-content/plugins/backup-guard-platinum/com/core/backup/
Upload File :
Create Path :
Current File : /home/emergentqj/jugement/wp-content/plugins/backup-guard-platinum/com/core/backup/SGBackupSchedule.php

<?php
require_once(SG_SCHEDULE_PATH.'SGSchedule.php');

class SGBackupSchedule
{
    public static function create($cron, $options, $label)
    {
        $sgdb = SGDatabase::getInstance();
        $params = array();
        $query = '';

        if (!SGBoot::isFeatureAvailable('MULTI_SCHEDULE')) {
            self::remove();
            $query = 'INSERT INTO '.SG_SCHEDULE_TABLE_NAME.' (id, label, status, schedule_options, backup_options) VALUES (%d, %s, %d, %s, %s) ON DUPLICATE KEY UPDATE label=%s, schedule_options=%s, backup_options=%s';

            $params = array(
                SG_SCHEDULER_DEFAULT_ID,
                $label,
                SG_SHCEDULE_STATUS_PENDING,
                json_encode($cron),
                json_encode($options),
                $label,
                json_encode($cron),
                json_encode($options)
            );
        }
        else{
            $query = 'INSERT INTO '.SG_SCHEDULE_TABLE_NAME.' (label, status, schedule_options, backup_options) VALUES (%s, %d, %s, %s)';

            $params = array(
                $label,
                SG_SHCEDULE_STATUS_PENDING,
                json_encode($cron),
                json_encode($options)
            );
        }

        $res = $sgdb->query($query, $params);

        if ($res) {
            $id = $sgdb->lastInsertId();
            SGSchedule::create($cron['cronTab'], $id);
        }
    }

    public static function remove($id = SG_SCHEDULER_DEFAULT_ID)
    {
        $sgdb = SGDatabase::getInstance();
        $sgdb->query('DELETE FROM '.SG_SCHEDULE_TABLE_NAME.' WHERE id=%d', array($id));
        SGSchedule::remove($id);
    }

    public static function getCronExecutionData($cron)
    {
        $cron = json_decode($cron, true);
        return SGSchedule::getCronExecutionData($cron['cronTab']);
    }

    public static function getAllSchedules()
    {
        $sgdb = SGDatabase::getInstance();
        $results = $sgdb->query('SELECT id, label, status, schedule_options, backup_options FROM '.SG_SCHEDULE_TABLE_NAME);
        $schedules = array();
        foreach ($results as $key => $row) {
            $schedules[$key]['id'] = $row['id'];
            $schedules[$key]['label'] = $row['label'];
            $schedules[$key]['status'] = $row['status'];
            $cronExecutionData = self::getCronExecutionData($row['schedule_options']);

            $schedules[$key]['recurrence'] = ucfirst($cronExecutionData['recurrence']);
            $schedules[$key]['executionDate'] = $cronExecutionData['time'];
            $schedules[$key]['backup_options'] = $row['backup_options'];
        }

        return $schedules;
    }
}

Zerion Mini Shell 1.0