Чистка оптимизация и унификация кода.
This commit is contained in:
188
clan.php
188
clan.php
@@ -1,84 +1,104 @@
|
||||
<?php
|
||||
ob_start("ob_gzhandler");
|
||||
session_start();
|
||||
if ($_SESSION['uid'] == null) header("Location: index.php");
|
||||
include_once 'config.php';
|
||||
if (empty($_SESSION['uid'])) {
|
||||
header("Location: index.php");
|
||||
}
|
||||
include_once 'functions.php';
|
||||
$status = null;
|
||||
$action = filter_input(INPUT_POST,'action');
|
||||
$login = filter_input(INPUT_POST,'login');
|
||||
|
||||
if (!$user['klan']) {
|
||||
if (!$user->clan) {
|
||||
die(err('Вы не состоите в клане!'));
|
||||
}
|
||||
$klan = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user['klan'])->fetch_assoc();
|
||||
$polno = [];
|
||||
$polno = unserialize($klan['vozm']);
|
||||
try {
|
||||
$clanRow = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user['klan'])->fetch_assoc();
|
||||
$polno = unserialize($clanRow['vozm']) ?? [];
|
||||
} catch (Exception $e) {
|
||||
echo "MYSQL_ERROR: Таблицы clans не существует! Вся панель — одна сплошная ошибка!";
|
||||
}
|
||||
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;
|
||||
|
||||
if (isset($_POST['zamok'])) {
|
||||
if ($zamok) {
|
||||
db::c()->query('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?i', $_SESSION['uid']);
|
||||
$status = "Начат сбор средств на строительство Кланового Замка.";
|
||||
header("Location: clan.php");
|
||||
}
|
||||
|
||||
if (isset($_POST['kr']) && ($_POST['kolv'] > 0)) {
|
||||
if ($user['money'] >= $_POST['kolv']) {
|
||||
db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $_POST['kolv'], $user['klan']);
|
||||
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $_POST['kolv'], $user['id']);
|
||||
if ($kr && $kolv > 0) {
|
||||
if ($user->money >= $kolv) {
|
||||
db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $kolv, $user->clan);
|
||||
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $kolv, $user->id);
|
||||
header("Location: clan.php");
|
||||
} else $status = 'Не хватает денег!';
|
||||
} else {
|
||||
$status = 'Не хватает денег!';
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($login) AND $action == 'add_member' AND $polno[$user['id']][0] == 1) {
|
||||
$sok = db::c()->query('SELECT `id`,`level`,`klan` FROM `users` WHERE `align` = 0 AND `login` = "?s"', $login)->fetch_assoc();
|
||||
$proverka = db::c()->query('SELECT 1 FROM `effects` WHERE `type` = 20 AND `owner` = ?i', $sok['id'])->getNumRows();
|
||||
if (!$proverka) echo "Нет проверки!";
|
||||
elseif (!empty($sok['klan'])) echo 'Персонаж уже состоит в клане!';
|
||||
elseif ($sok['level'] > 0 && $user['money'] >= 100) {
|
||||
db::c()->query('UPDATE `users` SET `money` = `money` - 100 WHERE `id` = ?i', $_SESSION['uid']);
|
||||
db::c()->query('UPDATE `users` SET `status` = "?s", `klan` = "?s", `align` = ?i WHERE `id` = ?i', 'Боец', $klan['id'], $klan['align'], $sok['id']);
|
||||
if ($login && $action == 'add_member' && $polno[$user['id']][0] == 1) {
|
||||
$sok = db::c()->query('SELECT id, level, clan FROM users WHERE align = 0 AND login = "?s"', $login)->fetch_assoc();
|
||||
$proverka = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $sok['id'])->getNumRows();
|
||||
if (!$proverka) {
|
||||
echo "Нет проверки!";
|
||||
} elseif ($sok['clan']) {
|
||||
echo 'Персонаж уже состоит в клане!';
|
||||
} elseif ($sok['level'] > 0 && $user->money >= COST_ADD_MEMBER) {
|
||||
db::c()->query('UPDATE users SET money = money - ?i WHERE `id` = ?i', COST_ADD_MEMBER, $_SESSION['uid']);
|
||||
db::c()->query('UPDATE users SET clan = "?s", align = ?i WHERE id = ?i', $clanRow['id'], $clanRow['align'], $sok['id']);
|
||||
$status = 'Персонаж «' . $login . '» успешно принят в клан.';
|
||||
} else $status = 'Не хватает денег, или персонажа не существует.';
|
||||
} else {
|
||||
$status = 'Не хватает денег, или персонажа не существует.';
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($login) AND $action == 'remove_member' AND $polno[$user['id']][0] == 1) {
|
||||
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc();
|
||||
if ($sok['id'] != $klan['glava'] AND $user['money'] >= 30) {
|
||||
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']);
|
||||
db::c()->query('UPDATE `users` SET `klan` = null, `align` = 0 WHERE `id` = ?i', $sok['id']);
|
||||
if ($login && $action == 'remove_member' && $polno[$user['id']][0] == 1) {
|
||||
$sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc();
|
||||
if ($sok['id'] != $clanRow['glava'] && $user->money >= COST_REMOVE_MEMBER) {
|
||||
db::c()->query('UPDATE users SET money = money - ?i WHERE id = ?i', COST_REMOVE_MEMBER, $_SESSION['uid']);
|
||||
db::c()->query('UPDATE users SET clan = "?s", align = 0 WHERE id = ?i', '', $sok['id']);
|
||||
$status = 'Персонаж «' . $login . '» покинул клан.';
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($login) AND $action == 'change_owner' AND $klan['glava'] == $_SESSION['uid']) {
|
||||
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc();
|
||||
db::c()->query('UPDATE `clans` SET `glava` = ?i WHERE `id` = ?i', $sok['id'], $klan['id']);
|
||||
db::c()->query('UPDATE `users` SET `status` = null WHERE `id` = ?i', $sok['id']);
|
||||
db::c()->query('UPDATE `users` SET `status` = "?s" WHERE `id` = ?i', 'Боец', $_SESSION['uid']);
|
||||
$klan['glava'] = $sok['id'];
|
||||
if ($login && $action == 'change_owner' && $clanRow['glava'] == $_SESSION['uid']) {
|
||||
$sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc();
|
||||
db::c()->query('UPDATE clans SET glava = ?i WHERE id = ?i', $sok['id'], $clanRow['id']);
|
||||
db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', '', $sok['id']);
|
||||
db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', 'Боец', $_SESSION['uid']);
|
||||
$clanRow['glava'] = $sok['id'];
|
||||
}
|
||||
|
||||
if (!empty($login) AND $action == 'edit_status') {
|
||||
$sok = db::c()->query('SELECT `id`, `status` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc();
|
||||
if ($sok['id'] != $klan['glava']) {
|
||||
if (!empty($_POST['new_status'])) {
|
||||
$st = strip_tags(str_replace("<", "<", str_replace(">", ">", $_POST['new_status'])), "<B><I><U>");
|
||||
db::c()->query('UPDATE `users` SET `status` = "?s" WHERE `id` = ?i', $st, $sok['id']);
|
||||
if ($login && $action == 'edit_status') {
|
||||
$sok = db::c()->query('SELECT id, status FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc();
|
||||
if ($sok['id'] != $clanRow['glava']) {
|
||||
if ($newClanStatus) {
|
||||
$st = strip_tags(str_replace("<", "<", str_replace(">", ">", $newClanStatus)), "<B><I><U>");
|
||||
db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', $st, $sok['id']);
|
||||
$sok['status'] = $st;
|
||||
}
|
||||
if ($klan['glava'] == $_SESSION['uid']) {
|
||||
if (!empty($_POST['vin'])) $polno[$sok['id']][0] = 1;
|
||||
else $polno[$sok['id']][0] = 0;
|
||||
|
||||
if (!empty($_POST['tus'])) $polno[$sok['id']][1] = 1;
|
||||
else $polno[$sok['id']][1] = 0;
|
||||
|
||||
db::c()->query('UPDATE `clans` SET `vozm` = "?s" WHERE `id` = ?i', serialize($polno), $klan['id']);
|
||||
if ($clanRow['glava'] == $_SESSION['uid']) {
|
||||
if ($vin) {
|
||||
$polno[$sok['id']][0] = 1;
|
||||
} else {
|
||||
$polno[$sok['id']][0] = 0;
|
||||
}
|
||||
if ($tus) {
|
||||
$polno[$sok['id']][1] = 1;
|
||||
} else {
|
||||
$polno[$sok['id']][1] = 0;
|
||||
}
|
||||
db::c()->query('UPDATE clans SET vozm = "?s" WHERE id = ?i', serialize($polno), $clanRow['id']);
|
||||
}
|
||||
} else $status = 'Главу клана редактировать запрещено!';
|
||||
} else {
|
||||
$status = 'Главу клана редактировать запрещено!';
|
||||
}
|
||||
}
|
||||
|
||||
$clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `room`, `align`, (select `id` from `online` WHERE `date` >= ?i AND `id` = users.`id`) AS `online` FROM `users` WHERE `klan` = ?i ORDER BY `online` DESC , `login` ASC', (time() - 60), $klan['id']);
|
||||
$clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `room`, `align`, (select `id` from `online` WHERE `date` >= ?i AND `id` = users.`id`) AS `online` FROM `users` WHERE `klan` = ?i ORDER BY `online` DESC , `login` ASC', (time() - 60), $clanRow['id']);
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
@@ -89,36 +109,38 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<button onclick="location.href='main.php'">Вернуться</button> <?php if (!empty($status)) err($status); ?></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/<?= $klan['short'] ?>.gif"><?= $klan['name'] ?></h3>
|
||||
<h3><img src="./i/clan/<?= $clanRow['short'] ?>.gif"><?= $clanRow['name'] ?></h3>
|
||||
Количество рейтинговых очков клана: <span
|
||||
style="color: #428f21; font-size: larger;"><?= $klan['rating'] ?></span><br>
|
||||
style="color: #428f21; font-size: larger;"><?= $clanRow['rating'] ?></span><br>
|
||||
|
||||
<?php if ($polno[$user['id']][0] == 1): ?>
|
||||
<div>
|
||||
<span id="add_member">
|
||||
<input type="submit" onclick="use('add_member')" value="Принять в клан">
|
||||
</span>
|
||||
(стоимость услуги: <B>100</B> кр.)
|
||||
(стоимость услуги: <B><?= COST_ADD_MEMBER ?></B> кр.)
|
||||
</div>
|
||||
<div>
|
||||
<span id="remove_member">
|
||||
<input type="submit" onclick="use('remove_member')" value="Выгнать из клана">
|
||||
</span>
|
||||
(стоимость услуги: <B>30</B> кр.)
|
||||
(стоимость услуги: <B><?= COST_REMOVE_MEMBER ?></B> кр.)
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($polno[$user['id']][1] == 1 OR $klan['glava'] == $user['id']): ?>
|
||||
<?php if (!empty($login) AND $action == 'edit_status' AND $sok['id'] != $klan['glava']): ?>
|
||||
<?php if ($polno[$user['id']][1] == 1 || $clanRow['glava'] == $user['id']): ?>
|
||||
<?php if ($login && $action == 'edit_status' && $sok['id'] != $clanRow['glava']): ?>
|
||||
<form method='post'>
|
||||
<input placeholder='Статус' name='new_status'>
|
||||
<input type="hidden" name="login" value="<?= $login ?>">
|
||||
<?php if ($klan['glava'] == $user['id']): ?>
|
||||
<?php if ($clanRow['glava'] == $user['id']): ?>
|
||||
<?php if ($polno[$sok['id']][0] == 1): ?>
|
||||
<br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана
|
||||
<?php else: ?>
|
||||
@@ -142,37 +164,37 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($klan['glava'] == $user['id']): ?>
|
||||
<?php if ($clanRow['glava'] == $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($klan['zamok'])): ?>
|
||||
<?php if ($klan['rating'] < 1000000): ?>
|
||||
Недостаточно рейтинга для постройки замка. <?= showProgressBar($klan['rating'], 1000000) ?>
|
||||
<?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>
|
||||
(собрать силами всего клана 25000 кр.)<BR>
|
||||
(собрать силами всего клана <?= CASTLE_COST ?> кр.)<BR>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($klan['zamok'] == 1): ?>
|
||||
<?php if ($clanRow['zamok'] == 1): ?>
|
||||
<p>
|
||||
<?php if ($klan['zbor'] < 25000): ?>
|
||||
<?php if ($clanRow['zbor'] < CASTLE_COST): ?>
|
||||
Сбор средств на постройку кланового замка:
|
||||
<?= showProgressBar($klan['zbor'], 25000) ?>
|
||||
<?= 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(25000, 25000) ?>
|
||||
<?= showProgressBar(CASTLE_COST, CASTLE_COST) ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
@@ -186,11 +208,19 @@ $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `roo
|
||||
</tr>
|
||||
<?php
|
||||
while ($row = $clan_memberlist->fetch_assoc()):
|
||||
if ($row['id'] == $klan['glava']) $row['status'] = '<b style="color: #008080;">Глава клана</b>';
|
||||
if (empty($row['status'])) $row['status'] = 'Боец';
|
||||
if (empty($row['online'])) $rrm = 'Персонаж не в игре';
|
||||
elseif ($row['room'] > 500 AND $row['room'] < 561) $rrm = 'Башня смерти';
|
||||
else $rrm = $rooms[$row['room']];
|
||||
if ($row['id'] == $clanRow['glava']) {
|
||||
$row['status'] = '<b style="color: #008080;">Глава клана</b>';
|
||||
}
|
||||
if (empty($row['status'])) {
|
||||
$row['status'] = 'Боец';
|
||||
}
|
||||
if (empty($row['online'])) {
|
||||
$rrm = 'Персонаж не в игре';
|
||||
} elseif ($row['room'] > 500 && $row['room'] < 561) {
|
||||
$rrm = 'Башня смерти';
|
||||
} else {
|
||||
$rrm = $rooms[$row['room']];
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td><?= Nick::id($row['id'])->full() ?></td>
|
||||
|
||||
Reference in New Issue
Block a user