You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
5.2 KiB
107 lines
5.2 KiB
<?php |
|
// Здание регистратуры! |
|
use Battles\Database\Db; |
|
use Battles\GameConfigs; |
|
use Battles\Rooms; |
|
use Battles\Template; |
|
use Battles\User; |
|
|
|
require_once 'functions.php'; |
|
$userClan = Db::getInstance()->ofetch('select * from clans where owner_id = ?', User::getInstance()->getId()); |
|
$clanFullName = $_POST['clan_full_name'] ?? ''; |
|
$clanShortName = $_POST['clan_short_name'] ?? ''; |
|
$clanInfo = $_POST['clan_info'] ?? ''; |
|
if ($clanFullName && $clanShortName && $clanInfo && !$userClan) { |
|
|
|
$eff = Db::getInstance()->execute('select count(*) from users_effects where type = 20 and owner_id = ?', User::getInstance()->getId())->fetchColumn(); |
|
$name_check = Db::getInstance()->execute('select count(*) from clans where full_name = ? or short_name = ?', [$clanFullName, $clanShortName])->fetchColumn(); |
|
$errorMessage = []; |
|
if (GameConfigs::CLAN['clan_register_lock']) { |
|
$errorMessage[10] = 'Регистрация кланов закрыта! <BR>'; |
|
} |
|
if (User::getInstance()->getAlign()) { |
|
$errorMessage[0] = 'Вы уже имеете направленность!. <BR>'; |
|
} |
|
if (User::getInstance()->getClan()) { |
|
$errorMessage[1] = 'Вы уже состоите в клане!. <BR>'; |
|
} |
|
if (GameConfigs::CLAN['clan_register_cost'] >= User::getInstance()->money()->getBank()) { |
|
$errorMessage[2] = 'Не хватает денег на регистрацию клана. <BR>'; |
|
} |
|
if (!$eff) { |
|
$errorMessage[3] = 'Нет проверки. <BR>'; |
|
} |
|
if (!$name_check) { |
|
$errorMessage[4] = 'Клан с такими данными уже существует.<br>'; |
|
} |
|
if (!$errorMessage || User::getInstance()->getAdmin()) { |
|
try { |
|
Db::getInstance()->execute('insert into clans (owner_id, full_name, short_name, info) values (?,?,?,?)', [User::getInstance()->getId(), $clanFullName, $clanShortName, $clanInfo]); |
|
|
|
User::getInstance()->money()->modifyBank(-GameConfigs::CLAN['clan_register_cost'], '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); |
|
} |
|
} |
|
} |
|
Template::header(Rooms::$roomNames[30]); |
|
Template::buildingTop(Rooms::$roomNames[30], 'strah'); |
|
if ($userClan): ?> |
|
<div> |
|
<fieldset style="display: inline;"> |
|
<legend>Заявка на регистрацию</legend> |
|
<label> |
|
<input size=30 disabled value="<?= $userClan->full_name ?>"> |
|
</label> |
|
<label> |
|
<input size=30 disabled value="<?= $userClan->short_name ?>"> |
|
</label><BR> |
|
<BR> |
|
<label> |
|
<textarea cols=80 rows=10 disabled><?= nl2br($userClan->info) ?></textarea> |
|
</label><BR> |
|
<button disabled>Заявка подана и рассматривается</button> |
|
</fieldset> |
|
</div> |
|
<?php else: ?> |
|
<div> |
|
<form method="post"> |
|
<fieldset style="display: inline;"> |
|
<legend>Заявка на регистрацию</legend> |
|
<label> |
|
<input size=30 name="clan_full_name" placeholder="Название клана" value="<?= $clanFullName ?>"> |
|
</label> |
|
<label> |
|
<input size=30 name="clan_short_name" maxlength="5" placeholder="Английская аббревиатура" |
|
value="<?= $clanShortName ?>"> |
|
</label><BR> |
|
<BR> |
|
<label> |
|
<textarea cols=80 rows=10 name="clan_info" |
|
placeholder="Информация о клане для энциклопедии"><?= nl2br($clanInfo) ?></textarea> |
|
</label><BR> |
|
<input type="submit" value="Подать заявку"> |
|
</fieldset> |
|
</form> |
|
</div> |
|
<div> |
|
Для регистрации клана необходимо иметь: |
|
<ol> |
|
<li>Проверку на чистоту. У вас её нет. |
|
<li>10000 кредитов на банковском счёте. У вас на счету <?= User::getInstance()->money()->getBank() ?>. |
|
</ol> |
|
Поле информации не обазательное. Но его содержимое может серьёзно повысить шансы на регистрацию клана.<BR> |
|
Заявку на регистрацию подает глава клана. |
|
</div> |
|
<?php endif; ?>
|