mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-02 18:44:21 +00:00
426 lines
14 KiB
Smarty
426 lines
14 KiB
Smarty
<?php
|
|
|
|
#################################################################################
|
|
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
|
## --------------------------------------------------------------------------- ##
|
|
## Project: TravianZ ##
|
|
## Version: 06.05.2026 ##
|
|
## Filename profile.tpl ##
|
|
## Refactored by Shadow ##
|
|
## License: TravianZ Project ##
|
|
## Copyright: TravianZ (c) 2010-2026. All rights reserved. ##
|
|
## URLs: http://travianz.org ##
|
|
## Source code: http://github.com/Shadowss/TravianZ/ ##
|
|
## ##
|
|
#################################################################################
|
|
|
|
// =========================
|
|
// MEDALS LOAD
|
|
// =========================
|
|
|
|
$varmedal = $database->getProfileMedal($session->uid);
|
|
|
|
?>
|
|
|
|
|
|
<!-- =========================
|
|
PAGE HEADER
|
|
========================= -->
|
|
|
|
<h1><?php echo PLAYER_PROFILE; ?></h1>
|
|
<?php include("menu.tpl"); ?>
|
|
|
|
|
|
|
|
<form action="spieler.php" method="POST">
|
|
<input type="hidden" name="ft" value="p1" />
|
|
<input type="hidden" name="id" value="<?php echo isset($id) ? (int)$id : 0; ?>" />
|
|
|
|
<table cellpadding="1" cellspacing="1" id="edit">
|
|
|
|
<thead>
|
|
<tr>
|
|
<th colspan="3"><?php echo PLAYER; ?> <?php echo htmlspecialchars($session->username, ENT_QUOTES, 'UTF-8'); ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2"><?php echo DETAIL; ?></td>
|
|
<td><?php echo DESCRIPTION; ?></td>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td colspan="2" class="empty"></td>
|
|
<td class="empty"></td>
|
|
</tr>
|
|
|
|
<?php
|
|
// =========================
|
|
// BIRTHDAY SAFE PARSE
|
|
// =========================
|
|
$birthday = $session->userinfo['birthday'] ?? 0;
|
|
$bday = ($birthday != 0) ? explode("-", $birthday) : array('', '', '');
|
|
?>
|
|
|
|
<tr>
|
|
<th><?php echo BDAY; ?></th>
|
|
<td class="birth">
|
|
|
|
<input tabindex="1" class="text day" type="text" name="tag"
|
|
value="<?php echo $bday[2] ?? ''; ?>" maxlength="2" />
|
|
|
|
<select tabindex="2" name="monat" class="dropdown">
|
|
<option value="0"></option>
|
|
|
|
<?php
|
|
$months = [
|
|
1=>'Jan',2=>'Feb',3=>'Mar',4=>'Apr',5=>'May',6=>'June',
|
|
7=>'July',8=>'Aug',9=>'Sep',10=>'Oct',11=>'Nov',12=>'Dec'
|
|
];
|
|
|
|
foreach ($months as $k => $v) {
|
|
$sel = (isset($bday[1]) && $bday[1] == $k) ? 'selected' : '';
|
|
echo "<option value='$k' $sel>$v</option>";
|
|
}
|
|
?>
|
|
|
|
</select>
|
|
|
|
<input tabindex="3" type="text" name="jahr"
|
|
value="<?php echo $bday[0] ?? ''; ?>"
|
|
maxlength="4" class="text year">
|
|
|
|
</td>
|
|
|
|
<!-- DESCRIPTION RIGHT -->
|
|
<td rowspan="<?php echo 7 + count($database->getProfileVillages($session->uid)); ?>" class="desc1">
|
|
<textarea tabindex="7" name="be1"><?= htmlspecialchars($session->userinfo['desc2'] ?? '', ENT_QUOTES, 'UTF-8') ?></textarea>
|
|
</td>
|
|
</tr>
|
|
|
|
<!-- =========================
|
|
GENDER
|
|
========================= -->
|
|
<tr>
|
|
<th><?php echo GENDER; ?></th>
|
|
<td class="gend">
|
|
|
|
<label><input class="radio" type="radio" name="mw" value="0"
|
|
<?php if (($session->userinfo['gender'] ?? 0) == 0) echo "checked"; ?>> n/a</label>
|
|
|
|
<label><input class="radio" type="radio" name="mw" value="1"
|
|
<?php if (($session->userinfo['gender'] ?? 0) == 1) echo "checked"; ?>> m</label>
|
|
|
|
<label><input class="radio" type="radio" name="mw" value="2"
|
|
<?php if (($session->userinfo['gender'] ?? 0) == 2) echo "checked"; ?>> f</label>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
<!-- LOCATION -->
|
|
<tr>
|
|
<th><?php echo LOCATION; ?></th>
|
|
<td>
|
|
<input tabindex="5" type="text" name="ort"
|
|
value="<?= htmlspecialchars($session->userinfo['location'] ?? '', ENT_QUOTES, 'UTF-8') ?>"
|
|
maxlength="30" class="text">
|
|
</td>
|
|
</tr>
|
|
|
|
<tr><td colspan="2" class="empty"></td></tr>
|
|
|
|
<?php
|
|
// =========================
|
|
// VILLAGES LIST (SAFE BUT ALLOWS ')
|
|
// =========================
|
|
$varray = $database->getProfileVillages($session->uid);
|
|
|
|
for ($i = 0; $i < count($varray); $i++):
|
|
?>
|
|
<tr>
|
|
<th><?php echo VILLAGE_NAME; ?></th>
|
|
<td>
|
|
<input tabindex="6" type="text"
|
|
name="dname<?php echo $i; ?>"
|
|
value="<?= htmlspecialchars($varray[$i]['name'], ENT_QUOTES, 'UTF-8') ?>"
|
|
maxlength="30" class="text">
|
|
</td>
|
|
</tr>
|
|
<?php endfor; ?>
|
|
|
|
<!-- DESCRIPTION LEFT -->
|
|
<tr>
|
|
<td colspan="2" class="desc2">
|
|
<textarea tabindex="8" name="be2"><?= htmlspecialchars($session->userinfo['desc1'] ?? '', ENT_QUOTES, 'UTF-8') ?></textarea>
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- =========================
|
|
MEDALS TABLE
|
|
========================= -->
|
|
<p>
|
|
<table cellspacing="1" cellpadding="2" class="tbg">
|
|
|
|
<tr><td class="rbg" colspan="4"><?php echo MEDALS; ?></td></tr>
|
|
|
|
<tr>
|
|
<td><?php echo CATEGORY; ?></td>
|
|
<td><?php echo RANK; ?></td>
|
|
<td><?php echo WEEK; ?></td>
|
|
<td><?php echo BB_CODE; ?></td>
|
|
</tr>
|
|
|
|
<?php
|
|
// =========================
|
|
// DYNAMIC MEDALS
|
|
// =========================
|
|
foreach ($varmedal as $medal) {
|
|
|
|
$titel = "Bonus";
|
|
|
|
switch ($medal['categorie']) {
|
|
case "1": $titel="Attacker of the Week"; break;
|
|
case "2": $titel="Defender of the Week"; break;
|
|
case "3": $titel="Pop Climber of the week"; break;
|
|
case "4": $titel="Robber of the week"; break;
|
|
case "5": $titel="Top 10 Attack+Def"; break;
|
|
case "6": $titel="Top Attack streak ".$medal['points']; break;
|
|
case "7": $titel="Top Def streak ".$medal['points']; break;
|
|
case "8": $titel="Top Pop streak ".$medal['points']; break;
|
|
case "9": $titel="Top Rob streak ".$medal['points']; break;
|
|
case "10": $titel="Rank Climber"; break;
|
|
case "11": $titel="Rank streak ".$medal['points']; break;
|
|
case "12": $titel="Top 10 Attack"; break;
|
|
case "13": $titel="Top 10 Def"; break;
|
|
case "14": $titel="Top 10 Pop"; break;
|
|
case "15": $titel="Top 10 Rob"; break;
|
|
case "16": $titel="Top 10 Rank"; break;
|
|
}
|
|
|
|
echo "<tr>
|
|
<td>$titel</td>
|
|
<td>{$medal['plaats']}</td>
|
|
<td>{$medal['week']}</td>
|
|
<td><a href='#' onclick=\"insertMedal('[#{$medal['id']}]'); return false;\">[#{$medal['id']}]</a></td>
|
|
</tr>";
|
|
}
|
|
?>
|
|
|
|
<tr>
|
|
<td><?php echo BEGINPRO; ?></td><td></td><td></td>
|
|
<td><a href="#" onclick="insertMedal('[#0]'); return false;">[#0]</a></td>
|
|
</tr>
|
|
|
|
<?php if (NEW_FUNCTIONS_MEDAL_3YEAR): ?>
|
|
<tr><td>veteran</td><td></td><td></td><td><a href="#" onclick="insertMedal('[#g2300]'); return false;">[#g2300]</a></td></tr>
|
|
<?php endif; ?>
|
|
|
|
<?php if (NEW_FUNCTIONS_MEDAL_5YEAR): ?>
|
|
<tr><td>veteran_5a</td><td></td><td></td><td><a href="#" onclick="insertMedal('[#g2301]'); return false;">[#g2301]</a></td></tr>
|
|
<?php endif; ?>
|
|
|
|
<?php if (NEW_FUNCTIONS_MEDAL_10YEAR): ?>
|
|
<tr><td>veteran_10a</td><td></td><td></td><td><a href="#" onclick="insertMedal('[#g2302]'); return false;">[#g2302]</a></td></tr>
|
|
<?php endif; ?>
|
|
|
|
<?php
|
|
// =========================
|
|
// TRIBE MEDALS
|
|
// =========================
|
|
if(defined('NEW_FUNCTIONS_TRIBE_IMAGES') && NEW_FUNCTIONS_TRIBE_IMAGES){
|
|
|
|
if(($session->userinfo['tribe'] ?? 0) == 1){
|
|
echo "<tr><td>Tribe Romans</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#roman]'); return false;\">[#roman]</a></td></tr>";
|
|
} elseif(($session->userinfo['tribe'] ?? 0) == 2){
|
|
echo "<tr><td>Tribe Teutons</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#teuton]'); return false;\">[#teuton]</a></td></tr>";
|
|
} elseif(($session->userinfo['tribe'] ?? 0) == 3){
|
|
echo "<tr><td>Tribe Gauls</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#gaul]'); return false;\">[#gaul]</a></td></tr>";
|
|
}
|
|
}
|
|
|
|
// =========================
|
|
// MHS MEDALS
|
|
// =========================
|
|
if(defined('NEW_FUNCTIONS_MHS_IMAGES') && NEW_FUNCTIONS_MHS_IMAGES){
|
|
|
|
if(($session->userinfo['access'] ?? 0) == 9){
|
|
|
|
echo "<tr><td>".ADMIN1."</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#MULTIHUNTER]'); return false;\">[#MULTIHUNTER]</a></td></tr>";
|
|
|
|
echo "<tr><td>".ADMIN1."</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#MH]'); return false;\">[#MH]</a></td></tr>";
|
|
|
|
echo "<tr><td>".ADMIN1."</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#TEAM]'); return false;\">[#TEAM]</a></td></tr>";
|
|
|
|
} elseif(($session->userinfo['access'] ?? 0) == 8){
|
|
|
|
echo "<tr><td>".MULTIH1."</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#MULTIHUNTER]'); return false;\">[#MULTIHUNTER]</a></td></tr>";
|
|
|
|
echo "<tr><td>".MULTIH1."</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#MH]'); return false;\">[#MH]</a></td></tr>";
|
|
|
|
echo "<tr><td>".MULTIH1."</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#TEAM]'); return false;\">[#TEAM]</a></td></tr>";
|
|
}
|
|
}
|
|
|
|
// =========================
|
|
// SHADOW SPECIAL
|
|
// =========================
|
|
if(($session->userinfo['username'] ?? '') == "Shadow"){
|
|
|
|
echo "<tr><td>Shadow</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#SHADOW]'); return false;\">[#SHADOW]</a></td></tr>";
|
|
|
|
echo "<tr><td>Shadow</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#MH]'); return false;\">[#MH]</a></td></tr>";
|
|
|
|
echo "<tr><td>Shadow</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#TEAM]'); return false;\">[#TEAM]</a></td></tr>";
|
|
|
|
echo "<tr><td>Shadow</td><td></td><td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#EVENT]'); return false;\">[#EVENT]</a></td></tr>";
|
|
}
|
|
|
|
// =========================
|
|
// SPECIAL MEDALS
|
|
// =========================
|
|
if(defined('NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM') && NEW_FUNCTIONS_SPECIAL_MEDALS_SYSTEM){
|
|
$uid = (int)$session->uid;
|
|
|
|
// 1. Artefact - CORECTAT coloanele (4 td-uri)
|
|
$arte = $database->query("SELECT 1 FROM ".TB_PREFIX."artefacts WHERE owner = $uid LIMIT 1");
|
|
if($arte && $arte->num_rows > 0){
|
|
echo "<tr>
|
|
<td>Artefact Holder</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#ARTEFACT]'); return false;\">[#ARTEFACT]</a></td>
|
|
</tr>";
|
|
}
|
|
|
|
// 2. WW - CORECTAT la f99 (la tine WW e in f99, nu f40)
|
|
$ww = $database->query("SELECT f.f99 FROM ".TB_PREFIX."vdata v
|
|
INNER JOIN ".TB_PREFIX."fdata f ON f.vref = v.wref
|
|
WHERE v.owner = $uid AND f.f99t = 40 AND f.f99 > 0 LIMIT 1");
|
|
if($ww && $ww->num_rows > 0){
|
|
echo "<tr>
|
|
<td>WW Builder</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#WWBUILDER]'); return false;\">[#WWBUILDER]</a></td>
|
|
</tr>";
|
|
|
|
$lvl = (int)$ww->fetch_assoc()['f99'];
|
|
if($lvl >= 100){
|
|
echo "<tr>
|
|
<td>WW Winner</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#WINNERWW]'); return false;\">[#WINNERWW]</a></td>
|
|
</tr>";
|
|
}
|
|
}
|
|
|
|
// 3. GREATSTORE - DOAR 38 si 39 nivel 20
|
|
$hasGreatStore = false;
|
|
$qgs = $database->query("SELECT f.* FROM ".TB_PREFIX."fdata f
|
|
JOIN ".TB_PREFIX."vdata v ON v.wref=f.vref
|
|
WHERE v.owner=$uid");
|
|
if($qgs){
|
|
while($f = $qgs->fetch_assoc()){
|
|
$hasWh = $hasGr = false;
|
|
for($i=1; $i<=99; $i++){
|
|
if(!isset($f["f{$i}t"])) continue;
|
|
$type = (int)$f["f{$i}t"];
|
|
$lvl = (int)$f["f{$i}"];
|
|
if($type == 38 && $lvl == 20) $hasWh = true; // Great Warehouse
|
|
if($type == 39 && $lvl == 20) $hasGr = true; // Great Granary
|
|
}
|
|
if($hasWh && $hasGr){ $hasGreatStore = true; break; }
|
|
}
|
|
}
|
|
if($hasGreatStore){
|
|
echo "<tr>
|
|
<td>Great Store</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#GREATSTORE]'); return false;\">[#GREATSTORE]</a></td>
|
|
</tr>";
|
|
}
|
|
|
|
// 4. WALLMASTER - 5 sate cu zid 20 (31/32/33), fara f40/f99
|
|
|
|
$wallCount = 0;
|
|
$qw = $database->query("SELECT f.f40, f.f40t FROM ".TB_PREFIX."fdata f
|
|
JOIN ".TB_PREFIX."vdata v ON v.wref=f.vref
|
|
WHERE v.owner=$uid");
|
|
if($qw){
|
|
while($r = $qw->fetch_assoc()){
|
|
if((int)$r['f40'] == 20 && in_array((int)$r['f40t'], [31,32,33])){
|
|
$wallCount++;
|
|
}
|
|
}
|
|
}
|
|
if($wallCount >= 3){
|
|
echo "<tr>
|
|
<td>Wall Master</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#WALLMASTER]'); return false;\">[#WALLMASTER]</a></td>
|
|
</tr>";
|
|
}
|
|
|
|
// 5. HERO100 - erou nivel 99+
|
|
$h100 = $database->query("SELECT 1 FROM ".TB_PREFIX."hero WHERE uid=$uid AND level>=99 LIMIT 1");
|
|
if($h100 && $h100->num_rows){
|
|
echo "<tr>
|
|
<td>Hero 99+</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td><a href='#' onclick=\"insertMedal('[#HERO100]'); return false;\">[#HERO100]</a></td>
|
|
</tr>";
|
|
}
|
|
}
|
|
?>
|
|
|
|
</table>
|
|
</p>
|
|
|
|
<!-- JS -->
|
|
<script>
|
|
function insertMedal(code) {
|
|
const textarea = document.querySelector('textarea[name="be1"]');
|
|
if (!textarea) return;
|
|
|
|
textarea.focus();
|
|
|
|
const start = textarea.selectionStart;
|
|
const end = textarea.selectionEnd;
|
|
|
|
textarea.value =
|
|
textarea.value.substring(0, start) +
|
|
code +
|
|
textarea.value.substring(end);
|
|
|
|
textarea.selectionStart = textarea.selectionEnd = start + code.length;
|
|
}
|
|
</script>
|
|
|
|
<p class="btn">
|
|
<input type="image" name="s1" id="btn_ok"
|
|
class="dynamic_img" src="img/x.gif" alt="OK">
|
|
</p>
|
|
|
|
</form>
|