Files
TravianZ/Templates/Alliance/quitalli.tpl
T
Catalin Novgorodschi a02be51969 Incremental Refactor Templates
Incremental Refactor Templates
2026-05-06 13:16:54 +03:00

151 lines
3.8 KiB
Smarty

<?php
/*
|--------------------------------------------------------------------------
| TravianZ - Quit Alliance (refactored incremental)
|--------------------------------------------------------------------------
| Credits:
| Original system: TravianZ Project
| Incremental refactor: code cleanup + safety + reduced duplication
|
| Improvements:
| - reduced repeated DB calls
| - safer type casting
| - clearer flow (owner / normal member separation)
| - cached member list
| - preserved full logic compatibility
|--------------------------------------------------------------------------
*/
if (!isset($aid) || !$aid) {
$aid = (int) $session->alliance;
}
/* Alliance data */
$allianceinfo = $database->getAlliance($aid);
/* Check if user is alliance owner */
$isOwner = false;
$membersCount = 0;
if ($aid) {
$ownerCheck = $database->isAllianceOwner($session->uid);
$isOwner = ($ownerCheck == $aid);
if ($isOwner) {
$membersCount = (int) $database->countAllianceMembers($aid);
}
}
/* Header */
echo "<h1>" . htmlspecialchars($allianceinfo['tag']) . " - " . htmlspecialchars($allianceinfo['name']) . "</h1>";
include("alli_menu.tpl");
/* Preload members only once */
$memberlist = $database->getAllMember($aid);
/* Default state */
$canQuit = false;
$minEmbassyLevel = 0;
/* Form mode */
?>
<form method="post" action="allianz.php">
<input type="hidden" name="a" value="11">
<input type="hidden" name="o" value="11">
<input type="hidden" name="s" value="5">
<table cellpadding="1" cellspacing="1" id="quit" class="small_option">
<thead>
<tr>
<th colspan="2">Quit alliance</th>
</tr>
</thead>
<tbody>
<?php
/* Only founder logic */
if ($isOwner && $membersCount > 1) {
$minEmbassyLevel = $database->getMinEmbassyLevel($membersCount);
if ($minEmbassyLevel < 3) {
$minEmbassyLevel = 3;
}
?>
<tr>
<td colspan="2" class="info">
Because you are the alliance founder, you need to select a replacement founder before you leave.
</td>
</tr>
<tr>
<th>new&nbsp;founder:</th>
<td>
<select name="new_founder" class="name dropdown">
<?php
foreach ($memberlist as $member) {
$uid = (int) $member['id'];
/* exclude self */
if ($uid == $session->uid) {
continue;
}
/* must have required embassy level */
if ($database->getSingleFieldTypeCount($uid, 18, '>=', $minEmbassyLevel) >= 1) {
echo "<option value='" . $uid . "'>" . htmlspecialchars($member['username']) . "</option>";
$canQuit = true;
}
}
if (!$canQuit) {
echo "<option value='-1'>no candidates!</option>";
}
?>
</select>
</td>
</tr>
<?php
} else {
$canQuit = true;
}
?>
<tr>
<td colspan="2" class="info">
<br />
In order to quit the alliance you have to enter your password again for safety reasons.
</td>
</tr>
<tr>
<th>password:</th>
<td>
<input class="pass text" type="password" name="pw" maxlength="20">
<span class="error3"><?php echo $form->getError("pw"); ?></span>
</td>
</tr>
</tbody>
</table>
<?php if (!$canQuit): ?>
<span style="color: red">
<br />
Unfortunately, there are no members of the alliance with Embassy at level
<?php echo (int)$minEmbassyLevel; ?> or more. In this case, you will not be able to reassign the founder role.
You can still <a href="allianz.php?s=5">kick all members</a> and quit the alliance afterwards.
</span>
<?php endif; ?>
<p>
<input type="image" value="ok" name="s1" id="btn_ok" class="dynamic_img" src="img/x.gif" alt="OK" />
</p>
</form>
<p class="error"><?php echo $form->getError("founder"); ?></p>