EngineGP

Форк
0
155 строк · 5.2 Кб
1
<?php
2
/*
3
 * EngineGP   (https://enginegp.ru or https://enginegp.com)
4
 *
5
 * @copyright Copyright (c) 2018-present Solovev Sergei <inbox@seansolovev.ru>
6
 *
7
 * @link      https://github.com/EngineGPDev/EngineGP for the canonical source repository
8
 *
9
 * @license   https://github.com/EngineGPDev/EngineGP/blob/main/LICENSE MIT License
10
 */
11

12
if (!defined('EGP')) {
13
    exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
14
}
15

16
include(LIB . 'games/games.php');
17

18
// Обработка заказа
19
if ($go) {
20
    // Проверка на авторизацию
21
    sys::noauth();
22

23
    if ($mcache->get('buy_server')) {
24
        sleep(1.5);
25
    }
26

27
    $mcache->set('buy_server', true, false, 3);
28

29
    include(LIB . 'games/' . $section . '/service.php');
30

31
    // Входные данные
32
    $aData = [
33
        'unit' => isset($_POST['unit']) ? sys::int($_POST['unit']) : 0,
34
        'tarif' => isset($_POST['tarif']) ? sys::int($_POST['tarif']) : 0,
35
        'pack' => $_POST['pack'] ?? '',
36
        'slots' => isset($_POST['slots']) ? sys::int($_POST['slots']) : 0,
37
        'time' => isset($_POST['time']) ? sys::int($_POST['time']) : 30,
38
        'test' => (isset($_POST['time']) and $_POST['time'] == 'test') ? true : false,
39
        'promo' => $_POST['promo'] ?? false,
40
    ];
41

42
    // Массвив данных
43
    $aSDATA = service::buy($aData);
44

45
    // Процесс выдачи игрового сервера
46
    $id = service::install($aSDATA);
47

48
    sys::outjs(['s' => 'ok', 'id' => $id]);
49
}
50

51
include(LIB . 'games/services.php');
52

53
$check = false;
54

55
// Проверка наличия доступной локации
56
$sql->query(services::unit($section));
57
if ($sql->num()) {
58
    // Выбранная локация
59
    if (isset($url['get']) and in_array($url['get'], ['tarifs', 'data'])) {
60
        $sql->query('SELECT `id`, `test` FROM `units` WHERE `id`="' . $id . '" LIMIT 1');
61
    }
62

63
    $select_unit = $sql->get();
64

65
    // Генерация списка локаций
66
    $units = services::units($section);
67

68
    // Генерация списка тарифов
69
    $tarifs = services::tarifs($section, $select_unit['id']);
70

71
    if (isset($url['get']) and in_array($url['get'], ['price', 'promo'])) {
72
        $aGet = [
73
            'tarif' => sys::int($url['tarif']),
74
            'slots' => sys::int($url['slots']),
75
            'time' => sys::int($url['time']),
76
            'user' => $user['id'],
77
        ];
78

79
        $sql->query('SELECT `price`, `discount` FROM `tarifs` WHERE `id`="' . $aGet['tarif'] . '" LIMIT 1');
80
        $tarif = $sql->get();
81

82
        // Выхлоп цены за выбранные параметры
83
        if ($url['get'] == 'price') {
84
            // Если выбран тестовый период
85
            if ($url['time'] == 'test') {
86
                sys::outjs(['sum' => 0]);
87
            }
88

89
            sys::outjs([
90
                'sum' => games::define_sum($tarif['discount'], $tarif['price'], $aGet['slots'], $aGet['time']),
91
            ]);
92
        }
93

94
        // Выхлоп цены с учетом промо-кода
95
        if ($url['get'] == 'promo') {
96
            games::define_promo(
97
                $url['cod'],
98
                $tarif['discount'],
99
                games::define_sum($tarif['discount'], $tarif['price'], $aGet['slots'], $aGet['time']),
100
                $aGet
101
            );
102
        }
103
    }
104

105
    // Генерация сборок/слот/периодов
106
    if (isset($url['get']) and $url['get'] == 'data') {
107
        $sql->query('SELECT `id`, `name`, `price`, `slots_min`, `slots_max`, `packs`, `time`, `test`, `discount` FROM `tarifs` WHERE `id`="' . sys::int($url['tarif']) . '" LIMIT 1');
108
    } else {
109
        $sql->query('SELECT `id`, `name`, `price`, `slots_min`, `slots_max`, `packs`, `time`, `test`, `discount` FROM `tarifs` WHERE `game`="' . $section . '" AND `unit`="' . $select_unit['id'] . '" AND `show`="1" ORDER BY `sort` ASC LIMIT 1');
110
    }
111

112
    if ($sql->num()) {
113
        $select_tarif = $sql->get();
114

115
        $aTarif = games::parse_tarif($select_tarif, $select_unit);
116

117
        if (isset($url['get'])) {
118
            // Выхлоп при выборе локации
119
            if ($url['get'] == 'tarifs') {
120
                sys::outjs(array_merge(['tarifs' => $tarifs], $aTarif));
121
            }
122

123
            // Выхлоп при выборе тарифа
124
            if ($url['get'] == 'data') {
125
                sys::outjs($aTarif);
126
            }
127
        }
128

129
        $html->get($section, 'sections/services/games');
130
        $html->set('units', $units);
131
        $html->set('tarifs', $tarifs);
132
        $html->set('packs', $aTarif['packs']);
133
        $html->set('slots', $aTarif['slots']);
134
        $html->set('time', $aTarif['time']);
135
        $html->set('cur', $cfg['currency']);
136
        $html->set('date', date('d.m.Y', $start_point));
137

138
        if ($cfg['settlement_period']) {
139
            $html->unit('settlement_period', true, true);
140
        } else {
141
            $html->unit('settlement_period', false, true);
142
        }
143

144
        $html->unit('informer', false, true);
145
        $html->pack('main');
146

147
        $check = true;
148
    }
149
}
150

151
if (!$check) {
152
    $html->get($section, 'sections/services/games');
153
    $html->unit('informer', true, true);
154
    $html->pack('main');
155
}
156

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.