function sns_configure_backup_db_data()
{
    global $wpdb;
    $table_name = SNS_DB_PREFIX . 'options';
    $options = $wpdb->get_results("SELECT COUNT(*) as `cnt` FROM {$table_name}", ARRAY_A);
    if ($options[0]['cnt'] == 0) {
        foreach (Sns_Option::get_options_list() as $option) {
            if ($option == Sns_Option::COUNT) {
                $val = intval(SNS_BACKUPS_MAX_COUNT);
            } else {
                $val = intval(Sns_Option::SET);
            }
            $wpdb->insert($table_name, array('option' => $option, 'value' => $val));
        }
    }
    $table_name = SNS_DB_PREFIX . 'settings_destinations';
    $destinations = $wpdb->get_results("SELECT COUNT(*) as `cnt` FROM {$table_name}", ARRAY_A);
    if ($destinations[0]['cnt'] == 0) {
        foreach (Sns_Destination::get_destinations_list() as $destination) {
            $wpdb->insert($table_name, array('name' => $destination));
        }
    }
    $table_name = SNS_DB_PREFIX . 'settings_ftp';
    $ftp = $wpdb->get_results("SELECT COUNT(*) as `cnt` FROM {$table_name}", ARRAY_A);
    if ($ftp[0]['cnt'] == 0) {
        $wpdb->insert($table_name, array('server' => '', 'port' => SNS_FTP_DEF_PORT));
    }
    $table_name = SNS_DB_PREFIX . 'state';
    $state = $wpdb->get_results("SELECT `status` FROM {$table_name}", ARRAY_A);
    if (empty($state)) {
        $wpdb->insert($table_name, array('type' => Sns_State::TYPE_BACKUP, 'status' => Sns_State::STATUS_NONE));
    } else {
        $data = array('status' => Sns_State::STATUS_NONE);
        Sns_State::update($data);
    }
}
function sns_backup_action()
{
    $proc = Sns_State::get_status();
    $scheduleState = Sns_State::get_status(Sns_Backup::BACKUP_MODE_SCHEDULE);
    if ($proc['status'] != Sns_State::STATUS_ACTIVE && empty($scheduleState)) {
        $backup = new Sns_Backup('schedule');
        $data = array('status' => Sns_State::STATUS_ACTIVE);
        Sns_State::update($data);
        try {
            $backup->backup();
        } catch (Exception $e) {
            Sns_Log::log_exception_obj($e);
        }
        $data = array('status' => Sns_State::STATUS_FINISHED);
        Sns_State::update($data);
    }
}
function sns_backup_prepare_process()
{
    $stateData = array('status' => Sns_State::STATUS_READY_TO_START, 'type' => isset($_POST['type']) && $_POST['type'] == Sns_State::TYPE_RESTORE ? Sns_State::TYPE_RESTORE : Sns_State::TYPE_BACKUP);
    Sns_State::update($stateData);
    die;
}