battles/clan_create.php

99 lines
4.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
session_start();
if (empty($_SESSION['uid'])) {
header("Location: index.php");
exit;
}
require_once 'functions.php';
$user = $user ?? [];
if ($user->room != 30) {
header("Location: main.php");
exit;
}
$userClan = db::c()->query('SELECT short_name, full_name, info FROM clans where owner_id = ?i', $user->id)->fetch_object();
$clanFullName = $_POST['clan_full_name'] ?? '';
$clanShortName = $_POST['clan_short_name'] ?? '';
$clanInfo = $_POST['clan_info'] ?? '';
$userBank = new \Battles\Bank($user->id);
if ($clanFullName && $clanShortName && $clanInfo && !$userClan) {
$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);
$errorMessage = [];
if (Config::$clan_register_lock) {
$errorMessage[10] = 'Регистрация кланов закрыта! <BR>';
}
if ($user->align) {
$errorMessage[0] = 'Вы уже имеете направленность!. <BR>';
}
if ($user->clan) {
$errorMessage[1] = 'Вы уже состоите в клане!. <BR>';
}
if (Config::$clan_register_cost >= $userBank->getMoney()) {
$errorMessage[2] = 'Не хватает денег на регистрацию клана. <BR>';
}
if (!$eff) {
$errorMessage[3] = 'Нет проверки. <BR>';
}
if (!$name_check) {
$errorMessage[4] = 'Клан с такими данными уже существует.<br>';
}
if (!$errorMessage || $user->admin) {
try {
db::c()->query('INSERT INTO clans (owner_id, full_name, short_name, info) VALUES (?i,"?s","?s","?s")', $user->id, $clanFullName, $clanShortName, $clanInfo);
$userBank->setMoney($userBank->getMoney() - Config::$clan_register_cost);
Bank::setBankMoney($userBank->getMoney(), $user->id, 'clanRegister');
// Заглушка для отображения данных по только что зарегистрированному клану, когда запрос в базу в начале файла ещё не проходит.
$userClan = new stdClass();
$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 {
foreach ($errorMessage as $error) {
echo sprintf('<span class="error">%s</span>', $error);
}
}
}
\Battles\Template::header(Rooms::$roomNames[30]);
\Battles\Template::buildingTop(Rooms::$roomNames[30], 'strah');
if ($userClan): ?>
<div>
<fieldset style="display: inline;">
<legend>Заявка на регистрацию</legend>
<input size=30 disabled value="<?= $userClan->full_name ?>">
<input size=30 disabled value="<?= $userClan->short_name ?>"><BR>
<BR>
<textarea cols=80 rows=10 disabled><?= nl2br($userClan->info) ?></textarea><BR>
<button disabled>Заявка подана и рассматривается</button>
</fieldset>
</div>
<?php else: ?>
<div>
<form method="post">
<fieldset style="display: inline;">
<legend>Заявка на регистрацию</legend>
<input size=30 name="clan_full_name" placeholder="Название клана" value="<?= $clanFullName ?>">
<input size=30 name="clan_short_name" maxlength="5" placeholder="Английская аббревиатура"
value="<?= $clanShortName ?>"><BR>
<BR>
<textarea cols=80 rows=10 name="clan_info"
placeholder="Информация о клане для энциклопедии"><?= nl2br($clanInfo) ?></textarea><BR>
<input type="submit" value="Подать заявку">
</fieldset>
</form>
</div>
<div>
Для регистрации клана необходимо иметь:
<ol>
<li>Проверку на чистоту. У вас её нет.
<li>10000 кредитов на банковском счёте. У вас на счету <?= $userBank->getMoney() ?>.
</ol>
Поле информации не обазательное. Но его содержимое может серьёзно повысить шансы на регистрацию клана.<BR>
Заявку на регистрацию подает глава клана.
</div>
<?php endif; ?>