locations-bugs #17

Merged
lopar merged 12 commits from locations-bugs into master 2020-10-28 20:25:45 +00:00
2 changed files with 66 additions and 68 deletions
Showing only changes of commit f1b9ce6a45 - Show all commits

View File

@ -10,23 +10,26 @@ if ($user->room != 30) {
header("Location: main.php"); header("Location: main.php");
exit; exit;
} }
$klanName = $_POST['klanname'] ?? ''; $userClan = db::c()->query('SELECT short_name, full_name, info FROM clans where owner_id = ?i', $user->id)->fetch_object();
$klanAbbr = $_POST['klanabbr'] ?? ''; $clanFullName = $_POST['clan_full_name'] ?? '';
$klanDescr = $_POST['klandescr'] ?? ''; $clanShortName = $_POST['clan_short_name'] ?? '';
$clanInfo = $_POST['clan_info'] ?? '';
$userBank = new Bank($user->id);
if ($clanFullName && $clanShortName && $clanInfo && !$userClan) {
if ($klanName && $klanAbbr && $klanDescr) { $eff = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $user->id);
$name_check = db::c()->query('SELECT owner_id FROM clans WHERE full_name = "?s" OR short_name = "?s"', $clanFullName, $clanShortName);
$eff = db::c()->query('SELECT 1 FROM `effects` WHERE `owner` = ?i AND `type` = 20', $user->id);
$name_check = db::c()->query('SELECT 1 FROM `clans` WHERE `name` = "?s" OR `short` = "?s"', 111, 333);
$errorMessage = []; $errorMessage = [];
if (Config::$clan_register_lock) {
$errorMessage[10] = 'Регистрация кланов закрыта! <BR>';
}
if ($user->align) { if ($user->align) {
$errorMessage[0] = 'Вы уже имеете направленность!. <BR>'; $errorMessage[0] = 'Вы уже имеете направленность!. <BR>';
} }
if ($user->clan) { if ($user->clan) {
$errorMessage[1] = 'Вы уже состоите в клане!. <BR>'; $errorMessage[1] = 'Вы уже состоите в клане!. <BR>';
} }
if (Config::$clan_register_cost >= $user->money) { if (Config::$clan_register_cost >= $userBank->getMoney()) {
$errorMessage[2] = 'Не хватает денег на регистрацию клана. <BR>'; $errorMessage[2] = 'Не хватает денег на регистрацию клана. <BR>';
} }
if (!$eff) { if (!$eff) {
@ -35,67 +38,62 @@ if ($klanName && $klanAbbr && $klanDescr) {
if (!$name_check) { if (!$name_check) {
$errorMessage[4] = 'Клан с такими данными уже существует.<br>'; $errorMessage[4] = 'Клан с такими данными уже существует.<br>';
} }
if (!$errorMessage || $user->admin) {
if (!$errorMessage && !Config::$clan_register_lock) { try {
// db::c()->query('INSERT INTO `reg_klan` (owner, name, abr, descr) VALUES (?i,"?s","?s","?s")', db::c()->query('INSERT INTO clans (owner_id, full_name, short_name, info) VALUES (?i,"?s","?s","?s")', $user->id, $clanFullName, $clanShortName, $clanInfo);
// $user->id, $klanName, $klanAbbr, $klanDescr); $userBank->setMoney($userBank->getMoney() - Config::$clan_register_cost);
$user->money -= Config::$clan_register_cost; Bank::setBankMoney($userBank->getMoney(), $user->id, 'clanRegister');
Bank::setBankMoney($user->money, $user->id); // Заглушка для отображения данных по только что зарегистрированному клану, когда запрос в базу в начале файла ещё не проходит.
echo 'Заявка на регистрацию клана подана.'; $userClan = new stdClass();
err('Проверки пройдены, но клан регистрировать пока нельзя!'); $userClan->full_name = $clanFullName;
$userClan->short_name = $clanShortName;
$userClan->info = $clanInfo;
unset($clanShortName, $clanFullName, $clanInfo);
echo 'Заявка на регистрацию клана подана.';
} catch (Throwable $exception) {
echo '<div style="background-color: #fae0e0;"><span class="error">Ошибка записи в базу!</span><br>' . $exception . '</div>';
}
} else { } else {
foreach ($errorMessage as $error) { foreach ($errorMessage as $error) {
echo sprintf('<span class="error">%s</span>', $error); echo sprintf('<span class="error">%s</span>', $error);
} }
} }
} }
Template::header('Регистратура кланов'); Template::header(Rooms::$roomNames[30]);
?> Template::buildingTop(Rooms::$roomNames[30], 'strah');
<script> if ($userClan): ?>
function leave() { <div>
top.frames['main'].location = 'city.php?strah' <fieldset style="display: inline;">
} <legend>Заявка на регистрацию</legend>
</script> <input size=30 disabled value="<?= $userClan->full_name ?>">
<h1>Регистратура кланов</h1> <input size=30 disabled value="<?= $userClan->short_name ?>"><BR>
<a href=# onclick=leave()> ← выйти из регистратуры</a> <BR>
<?php <textarea cols=80 rows=10 disabled><?= nl2br($userClan->info) ?></textarea><BR>
if ($user->admin) { <button disabled>Заявка подана и рассматривается</button>
$clanreg = []; </fieldset>
$clanPremoderationList = [] </div>
<?php else: ?>
//$clanPremoderationList = db::c()->query('SELECT * FROM clans WHERE approved = 0'); <div>
foreach ($clanPremoderationList->fetch_object() as $clan) { <form method="post">
echo sprintf('<div>%s %s <br> %s</div>', $clan->date, $clan->name, $clan->owner); <fieldset style="display: inline;">
} <legend>Заявка на регистрацию</legend>
//$clanreg = db::c()->query('SELECT `date`,`name`,`abbr`,`owner`,`descr` FROM `reg_klan`')->fetch_assoc(); <input size=30 name="clan_full_name" placeholder="Название клана" value="<?= $clanFullName ?>">
echo '<table>'; <input size=30 name="clan_short_name" maxlength="5" placeholder="Английская аббревиатура"
while ($clanreg_row = $clanreg) { value="<?= $clanShortName ?>"><BR>
echo "<TR> <BR>
<TD>", $clanreg_row['date'], "</TD> <textarea cols=80 rows=10 name="clan_info"
<TD>", $clanreg_row['name'], "</TD> placeholder="Информация о клане для энциклопедии"><?= nl2br($clanInfo) ?></textarea><BR>
<TD>", $clanreg_row['abbr'], "</TD> <input type="submit" value="Подать заявку">
<TD>", Nick::id($clanreg_row['owner'])->full(), "</TD> </fieldset>
<TD>", nl2br($clanreg_row['descr']), "</TD> </form>
</TR>"; </div>
} <div>
echo '</table>'; Для регистрации клана необходимо иметь:
} <ol>
?> <li>Проверку на чистоту. У вас её нет.
Для регистрации клана необходимо иметь: <li>10000 кредитов на банковском счёте. У вас на счету <?= $userBank->getMoney() ?>.
<ol> </ol>
<li>Проверку на чистоту. Поле информации не обазательное. Но его содержимое может серьёзно повысить шансы на регистрацию клана.<BR>
<li>10000 кредитов на банковском счёте. Заявку на регистрацию подает глава клана.
</ol> </div>
Поле информации не обазательное. Но его содержимое может серьёзно повысить шансы на регистрацию клана.<BR> <?php endif; ?>
Заявку на регистрацию подает глава клана.
<form method="post">
<fieldset style="display: inline;">
<legend>Заявка на регистрацию</legend>
<input size=30 name="klanname" placeholder="Название клана" value="<?= $klanName ?>">
<input size=30 name="klanabbr" placeholder="Английская аббревиатура" value="<?= $klanAbbr ?>"><BR>
<BR>
<textarea cols=80 rows=10 name="klandescr"
placeholder="Информация о клане для энциклопедии"><?= nl2br($klanDescr) ?></textarea><BR>
<input type="submit" value="Подать заявку">
</fieldset>
</form>

View File

@ -26,7 +26,7 @@ class City
self::showBuilding(4, "cap_arr_left", 258, 21, self::$roomNames[20]) . self::showBuilding(4, "cap_arr_left", 258, 21, self::$roomNames[20]) .
self::showBuilding(5, "spring_cap_bank", 180, 485, self::$roomNames[29]) . self::showBuilding(5, "spring_cap_bank", 180, 485, self::$roomNames[29]) .
self::showBuilding(13, "spring_cap_flowershop", 220, 613, self::$roomNames[34]) . self::showBuilding(13, "spring_cap_flowershop", 220, 613, self::$roomNames[34]) .
self::showBuilding(14, "spring_cap_registratura", 170, 113, self::$roomNames[28]) . self::showBuilding(14, "spring_cap_registratura", 170, 113, self::$roomNames[30]) .
self::showBuilding(16, "spring_cap_tower", 5, 315, self::$roomNames[31]) . self::showBuilding(16, "spring_cap_tower", 5, 315, self::$roomNames[31]) .
'</div>'; '</div>';
} elseif ($id === 26) { } elseif ($id === 26) {