2018-01-28 18:40:49 +02:00
< ? php
2022-01-27 01:15:33 +02:00
// Здание регистратуры!
2021-02-01 18:42:52 +02:00
use Battles\Bank ;
2021-03-10 23:03:59 +02:00
use Battles\GameConfigs ;
2021-02-01 18:42:52 +02:00
use Battles\Rooms ;
use Battles\Template ;
2022-01-27 01:15:33 +02:00
use Battles\User ;
use Battles\Database\Db ;
2021-02-01 18:42:52 +02:00
2020-09-29 13:07:08 +03:00
require_once 'functions.php' ;
2022-01-27 01:15:33 +02:00
$userClan = Db :: getInstance () -> ofetch ( 'select * from clans where owner_id = ?' , User :: getInstance () -> getId ());
2020-10-28 15:04:29 +02:00
$clanFullName = $_POST [ 'clan_full_name' ] ? ? '' ;
$clanShortName = $_POST [ 'clan_short_name' ] ? ? '' ;
$clanInfo = $_POST [ 'clan_info' ] ? ? '' ;
2022-01-27 01:15:33 +02:00
$userBank = new Bank ( User :: getInstance () -> getId ());
2020-10-28 15:04:29 +02:00
if ( $clanFullName && $clanShortName && $clanInfo && ! $userClan ) {
2018-01-28 18:40:49 +02:00
2022-01-27 01:15:33 +02:00
$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 ();
2020-10-27 18:53:00 +02:00
$errorMessage = [];
2021-08-25 04:44:36 +03:00
if ( GameConfigs :: CLAN [ 'clan_register_lock' ]) {
2020-10-28 15:04:29 +02:00
$errorMessage [ 10 ] = 'Регистрация кланов закрыта! <BR>' ;
}
2022-01-27 01:15:33 +02:00
if ( User :: getInstance () -> getAlign ()) {
2020-10-27 18:53:00 +02:00
$errorMessage [ 0 ] = 'Вы уже имеете направленность!. <BR>' ;
2020-06-23 11:49:49 +03:00
}
2022-01-27 01:15:33 +02:00
if ( User :: getInstance () -> getClan ()) {
2020-10-27 18:53:00 +02:00
$errorMessage [ 1 ] = 'Вы уже состоите в клане!. <BR>' ;
2020-06-23 11:49:49 +03:00
}
2021-08-25 04:44:36 +03:00
if ( GameConfigs :: CLAN [ 'clan_register_cost' ] >= $userBank -> getMoney ()) {
2020-10-27 18:53:00 +02:00
$errorMessage [ 2 ] = 'Не хватает денег на регистрацию клана. <BR>' ;
2020-06-23 11:49:49 +03:00
}
if ( ! $eff ) {
2020-10-27 18:53:00 +02:00
$errorMessage [ 3 ] = 'Нет проверки. <BR>' ;
2020-06-23 11:49:49 +03:00
}
if ( ! $name_check ) {
2020-10-27 18:53:00 +02:00
$errorMessage [ 4 ] = 'Клан с такими данными уже существует.<br>' ;
2020-06-23 11:49:49 +03:00
}
2022-01-27 01:15:33 +02:00
if ( ! $errorMessage || User :: getInstance () -> getAdmin ()) {
2020-10-28 15:04:29 +02:00
try {
2022-01-27 01:15:33 +02:00
Db :: getInstance () -> execute ( 'insert into clans (owner_id, full_name, short_name, info) values (?,?,?,?)' , [ User :: getInstance () -> getId (), $clanFullName , $clanShortName , $clanInfo ]);
2021-08-25 04:44:36 +03:00
$userBank -> setMoney ( $userBank -> getMoney () - GameConfigs :: CLAN [ 'clan_register_cost' ]);
2022-01-27 01:15:33 +02:00
Battles\Bank :: setBankMoney ( $userBank -> getMoney (), User :: getInstance () -> getId (), 'clanRegister' );
2020-10-28 15:04:29 +02:00
// Заглушка для отображения данных по только что зарегистрированному клану, когда запрос в базу в начале файла ещё не проходит.
$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>' ;
}
2020-06-23 11:49:49 +03:00
} else {
2020-10-27 18:53:00 +02:00
foreach ( $errorMessage as $error ) {
echo sprintf ( '<span class="error">%s</span>' , $error );
}
2020-06-23 11:49:49 +03:00
}
2018-03-23 20:26:02 +02:00
}
2021-02-01 18:42:52 +02:00
Template :: header ( Rooms :: $roomNames [ 30 ]);
Template :: buildingTop ( Rooms :: $roomNames [ 30 ], 'strah' );
2020-10-28 15:04:29 +02:00
if ( $userClan ) : ?>
<div>
<fieldset style="display: inline;">
<legend>Заявка на регистрацию</legend>
2022-01-27 01:15:33 +02:00
<label>
<input size=30 disabled value="<?= $userClan->full_name ?>">
</label>
<label>
<input size=30 disabled value="<?= $userClan->short_name ?>">
</label><BR>
2020-10-28 15:04:29 +02:00
<BR>
2022-01-27 01:15:33 +02:00
<label>
<textarea cols=80 rows=10 disabled><?= nl2br($userClan->info) ?></textarea>
</label><BR>
2020-10-28 15:04:29 +02:00
<button disabled>Заявка подана и рассматривается</button>
</fieldset>
</div>
<?php else: ?>
<div>
<form method="post">
<fieldset style="display: inline;">
<legend>Заявка на регистрацию</legend>
2022-01-27 01:15:33 +02:00
<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>
2020-10-28 15:04:29 +02:00
<BR>
2022-01-27 01:15:33 +02:00
<label>
<textarea cols=80 rows=10 name="clan_info"
placeholder="Информация о клане для энциклопедии"><?= nl2br($clanInfo) ?></textarea>
</label><BR>
2020-10-28 15:04:29 +02:00
<input type="submit" value="Подать заявку">
</fieldset>
</form>
</div>
<div>
Для регистрации клана необходимо иметь:
<ol>
<li>Проверку на чистоту. У вас её нет.
<li>10000 кредитов на банковском счёте. У вас на счету <?= $userBank->getMoney() ?>.
</ol>
Поле информации не обазательное. Но его содержимое может серьёзно повысить шансы на регистрацию клана.<BR>
Заявку на регистрацию подает глава клана.
</div>
<?php endif; ?>