<?php use Battles\Bank; use Battles\Database\DBPDO; use Battles\Nick; use Battles\Rooms; use Battles\Template; use Battles\User; ob_start("ob_gzhandler"); session_start(); require_once 'functions.php'; $user = $user ?? new User($_SESSION['uid']); $db = new DBPDO(); $clanRow = []; if (!$user->clan) { exit(err('Вы не состоите в клане!')); } try { $clanRow = $db->fetch('SELECT * FROM `clans` WHERE short_name = ?', $user->clan); } catch (Exception $e) { echo "<div>MYSQL_ERROR: Таблица clans сломана!</div>"; } define('COST_ADD_MEMBER', 100); define('COST_REMOVE_MEMBER', 30); define('CASTLE_REPUTATION_NEEDED', 1000000); define('CASTLE_COST', 25000); $status = null; $action = $_POST['action'] ?? 0; $login = $_POST['login'] ?? 0; $zamok = $_POST['zamok'] ?? null; $kr = $_POST['kr'] ?? null; $kolv = $_POST['kolv'] ?? null; $newClanStatus = $_POST['new_status'] ?? null; $vin = $_POST['vin'] ?? null; $tus = $_POST['tus'] ?? null; $lock = true; // блокировка функций if ($zamok && !$lock) { $db->execute('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?', $user->id); $status = "Начат сбор средств на строительство Кланового Замка."; header("Location: clan.php"); } if ($kr && $kolv > 0 && !$lock) { if ($user->money >= $kolv) { $db->execute('UPDATE clans SET zbor = zbor + ? WHERE id = ?', [$kolv, $user->clan]); Bank::setWalletMoney($user->money -= $kolv, $user->id); header("Location: clan.php"); } else { $status = 'Не хватает денег!'; } } if ($login && $action == 'add_member') { $sok = $db->fetch('SELECT id, level, clan FROM users WHERE align = 0 AND login = ?', $login); $proverka = $db->fetch('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?', $sok['id']); if (!$proverka) { echo "Нет проверки!"; } elseif ($sok['clan']) { echo 'Персонаж уже состоит в клане!'; } elseif ($sok['level'] > 0 && $user->money >= COST_ADD_MEMBER) { Bank::setWalletMoney($user->money - COST_ADD_MEMBER, $user->id); $db->execute('UPDATE users SET clan = ?, align = ? WHERE id = ?', [$clanRow['id'], $clanRow['align'], $sok['id']]); $status = "Персонаж «{$login}» успешно принят в клан."; } else { $status = 'Не хватает денег, или персонажа не существует.'; } } if ($login) { $sok = $db->fetch('SELECT id FROM users WHERE clan = ? AND login = ?', [$clanRow['id'], $login]); if ($action == 'remove_member' && $sok['id'] != $clanRow['owner_id'] && $user->money >= COST_REMOVE_MEMBER) { Bank::setWalletMoney($user->money - COST_REMOVE_MEMBER, $user->id); $db->execute('UPDATE users SET clan = null, align = 0 WHERE id = ?', $sok['id']); $status = "Персонаж «{$login}» покинул клан."; } if ($action == 'change_owner' && $clanRow['owner_id'] == $user->id) { $db->execute('UPDATE clans SET owner_id = ? WHERE id = ?', [$sok['id'], $clanRow['id']]); $clanRow['owner_id'] = $sok['id']; } if ($action == 'edit_status' && !$lock) { if ($sok['id'] != $clanRow['owner_id']) { if ($newClanStatus) { $st = strip_tags(str_replace("<", "<", str_replace(">", ">", $newClanStatus)), "<B><I><U>"); $db->execute('UPDATE users SET status = ? WHERE id = ?', [$st, $sok['id']]); $sok['status'] = $st; } } else { $status = 'Главу клана редактировать запрещено!'; } } } $clan_memberlist = $db->fetchAll('SELECT id, login, level, align, (SELECT id FROM online WHERE date >= ? AND id = users.id) AS online FROM users WHERE clan = ? ORDER BY online DESC, login', [time() - 60, $clanRow['short_name']]); Template::header('clan'); $clanRow['zamok'] = null; //Замков нет! $clanRow['rating'] = null; //рейтов тоже! $clanRow['zbor'] = null; // И копилки. ?> <div> <button onclick="location.href='main.php'">Вернуться</button> <?php if (!empty($status)) { err($status); } ?> </div> <table style="width: 100%"> <tr> <td> <p style="width: 50%; vertical-align: top;" rowspan=2> <h3><img src="./i/clan/<?= $clanRow['short_name'] ?>.png"><?= $clanRow['full_name'] ?></h3> <?php if ($clanRow['owner_id'] == $user->id): ?> <div> <span id="add_member"> <input type="submit" onclick="use('add_member')" value="Принять в клан"> </span> (стоимость услуги: <B><?= COST_ADD_MEMBER ?></B> кр.) </div> <div> <span id="remove_member"> <input type="submit" onclick="use('remove_member')" value="Выгнать из клана"> </span> (стоимость услуги: <B><?= COST_REMOVE_MEMBER ?></B> кр.) </div> <?php endif; ?> <?php if ($clanRow['owner_id'] == $user->id): ?> <?php if ($login && $action == 'edit_status' && $sok['id'] != $clanRow['owner_id']): ?> <form method='post'> <input placeholder='Статус' name='new_status'> <input type="hidden" name="login" value="<?= $login ?>"> <?php if ($clanRow['glava'] == $user->id): ?> <?php if ($clanRow['owner_id'] == $user->id): ?> <br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана <?php else: ?> <br><input type=checkbox name=vin> Может принимать/выгонять членов клана <?php endif; ?> <?php if ($clanRow['owner_id'] == $user->id): ?> <br><input type=checkbox name=tus checked> Может менять статус членов клана <?php else: ?> <br><input type=checkbox name=tus> Может менять статус членов клана <?php endif; ?> <?php endif; ?> <button name='action' value='edit_status' type='submit'>Ок</button> <button>×</button> </form> <?php else: ?> <div> <span id="edit_status"> <input type="submit" onclick="use('edit_status')" value="Редактировать статус"> </span> </div> <?php endif; ?> <?php endif; ?> <?php if ($clanRow['owner_id'] == $user->id): ?> <div> <span id="change_owner"> <input type="submit" onclick="use('change_owner')" value="Сменить главу клана"> </span> (сложить с себя полномочия, назначив <b style="color: teal;">Главой Клана</b> другого персонажа) </div> <?php if (empty($clanRow['zamok'])): ?> <?php if ($clanRow['rating'] < CASTLE_REPUTATION_NEEDED): ?> Недостаточно рейтинга для постройки замка. <?= showProgressBar($clanRow['rating'], CASTLE_REPUTATION_NEEDED) ?> <?php else: ?> <form method="post"> <button type="submit" name="zamok" value="zamok">Построить Замок</button> (собрать силами всего клана <?= CASTLE_COST ?> кр.)<BR> </form> <?php endif; ?> <?php endif; ?> <?php endif; ?> <?php if ($clanRow['zamok'] == 1): ?> <p> <?php if ($clanRow['zbor'] < CASTLE_COST): ?> Сбор средств на постройку кланового замка: <?= showProgressBar($clanRow['zbor'], CASTLE_COST) ?> <form method="post"> <input name="kolv" size="10"> <button type="submit" name="kr" value="kr">Пожертвовать</button> </form> <?php else: ?> Средства на постройку кланового замка собраны! <?= showProgressBar(CASTLE_COST, CASTLE_COST) ?> <?php endif; ?> <?php endif; ?> </td> <td style="vertical-align: top;"> <h3>Соклановцы</h3> <table class="zebra" style="width: 100%;"> <tr> <th>Имя</th> <th>Статус</th> <th>Местонахождение</th> </tr> <?php $i = 0; while ($i < count($clan_memberlist)): if ($clan_memberlist[$i]['id'] == $clanRow['owner_id']) { $clan_memberlist[$i]['status'] = '<b style="color: #008080;">Глава клана</b>'; } if (empty($clan_memberlist[$i]['status'])) { $clan_memberlist[$i]['status'] = 'Боец'; } if (empty($clan_memberlist[$i]['online'])) { $rrm = 'Персонаж не в игре'; } elseif ($clan_memberlist[$i]['room'] > 500 && $clan_memberlist[$i]['room'] < 561) { $rrm = 'Башня смерти'; } else { $rrm = Rooms::$roomNames[$clan_memberlist[$i]['room']]; } ?> <tr> <td><?= Nick::id($clan_memberlist[$i]['id'])->full() ?></td> <td><?= $clan_memberlist[$i]['status'] ?></td> <td><i style="font-size: smaller;"><?= $rrm ?></i></td> </tr> <?php $i++; ?> <?php endwhile; ?> </table> </td> </tr> </table> <script type="text/javascript"> function use(option) { document.getElementById(option).innerHTML = "<form method='post'><input placeholder='Имя персонажа' name='login'><button name='action' value='" + option + "' type='submit'>Ок</button><button>×</button></form>"; } </script>