mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-21 12:06:10 +00:00
Incremental Refactor Templates
Incremental Refactor Templates
This commit is contained in:
+242
-144
@@ -1,66 +1,108 @@
|
||||
<div id="content" class="messages">
|
||||
<h1>Messages</h1>
|
||||
<?php
|
||||
include("menu.tpl");
|
||||
$user = $database->getUserArray($session->uid, 1);
|
||||
<?php
|
||||
#################################################################################
|
||||
## SAFE INCREMENTAL REFACTOR - Write Messages ##
|
||||
## Credits: optimized structure, same logic preserved ##
|
||||
## Compatibility: PHP 5.6+ / PHP 7+ ##
|
||||
#################################################################################
|
||||
?>
|
||||
|
||||
<div id="content" class="messages">
|
||||
<h1>Messages</h1>
|
||||
|
||||
<?php
|
||||
include("menu.tpl");
|
||||
|
||||
// ======================================================
|
||||
// USER DATA (single load)
|
||||
// ======================================================
|
||||
$user = $database->getUserArray($session->uid, 1);
|
||||
|
||||
// cache username (reduce SQL calls)
|
||||
$userCache = [];
|
||||
|
||||
function getCachedUsername($uid, $database, &$cache) {
|
||||
$uid = (int)$uid;
|
||||
if (!isset($cache[$uid])) {
|
||||
$cache[$uid] = $database->getUserField($uid, 'username', 0);
|
||||
}
|
||||
return $cache[$uid];
|
||||
}
|
||||
?>
|
||||
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
function setReceiver(name) {
|
||||
document.getElementById('receiver').value = name;
|
||||
copyElement('receiver');
|
||||
}
|
||||
// JS rămâne IDENTIC (nu modificăm comportament)
|
||||
function setReceiver(name) {
|
||||
document.getElementById('receiver').value = name;
|
||||
copyElement('receiver');
|
||||
}
|
||||
function closeFriendsList() {
|
||||
document.getElementById('adressbook').className = 'hide';
|
||||
}
|
||||
function toggleFriendsList() {
|
||||
var book = document.getElementById('adressbook');
|
||||
if (book.className == 'hide') book.className = '';
|
||||
else book.className = 'hide';
|
||||
}
|
||||
function copyElement(element) {}
|
||||
function submitDefault(type,uid) {
|
||||
var book = document.abform;
|
||||
book.sbmtype.value = type;
|
||||
book.sbmvalue.value = uid;
|
||||
book.submit();
|
||||
}
|
||||
</script>
|
||||
|
||||
function closeFriendsList() {
|
||||
document.getElementById('adressbook').className = 'hide';
|
||||
}
|
||||
|
||||
function toggleFriendsList() {
|
||||
var book = document.getElementById('adressbook');
|
||||
if (book.className == 'hide')
|
||||
book.className = '';
|
||||
else
|
||||
book.className = 'hide';
|
||||
}
|
||||
|
||||
function copyElement(element) {
|
||||
/*if (element == 'receiver') {
|
||||
document.getElementById('copy_receiver').value = document.getElementById('receiver').value;
|
||||
} else if (element == 'subject') {
|
||||
document.getElementById('copy_subject').value = document.getElementById('subject').value;
|
||||
} else if (element == 'body') {
|
||||
document.getElementById('copy_img').value = document.getElementById('message').value;
|
||||
}*/
|
||||
}
|
||||
|
||||
function submitDefault (type,uid) {
|
||||
var book = document.abform;
|
||||
book.sbmtype.value = type;
|
||||
book.sbmvalue.value = uid;
|
||||
book.submit();
|
||||
}
|
||||
|
||||
</script>
|
||||
<div id="write_head" class="msg_head"></div>
|
||||
<div id="write_content" class="msg_content">
|
||||
<form method="post" action="nachrichten.php" accept-charset="UTF-8" name="msg">
|
||||
<input type="hidden" name="c" value="3e9" />
|
||||
<input type="hidden" name="p" value="" />
|
||||
<img src="img/x.gif" id="label" class="send" alt="" />
|
||||
<div id="heading">
|
||||
<input class="text" type="text" name="an" id="receiver" value="<?php if(isset($id)) { echo $database->getUserField($id,'username',0); } ?>" maxlength="20" onkeyup="copyElement('receiver')" tabindex=1; /><br />
|
||||
<input class="text" type="text" name="be" id="subject" value="<?php if(isset($message->reply['topic']))
|
||||
{
|
||||
if (preg_match("/re([0-9]+)/i",$message->reply['topic'],$c))
|
||||
{
|
||||
$c = $c[1]+1;
|
||||
echo $message->reply['topic'] = strip_tags(preg_replace("/re[0-9]+/i","re".($c),$message->reply['topic']));
|
||||
}else{
|
||||
echo "re1:".strip_tags($message->reply['topic']); }} ?>" maxlength="35" onkeyup="copyElement('subject')" tabindex=2/>
|
||||
</div>
|
||||
<a id="adbook" href="#" onclick="toggleFriendsList(); return false;"><img src="img/x.gif" alt="Addressbook" title="Addressbook" /></a>
|
||||
|
||||
<form method="post" action="nachrichten.php" accept-charset="UTF-8" name="msg">
|
||||
<input type="hidden" name="c" value="3e9" />
|
||||
<input type="hidden" name="p" value="" />
|
||||
|
||||
<img src="img/x.gif" id="label" class="send" alt="" />
|
||||
|
||||
<div id="heading">
|
||||
|
||||
<!-- ======================================================
|
||||
RECEIVER
|
||||
====================================================== -->
|
||||
<input class="text" type="text" name="an" id="receiver"
|
||||
value="<?php
|
||||
if (isset($id)) {
|
||||
echo getCachedUsername($id, $database, $userCache);
|
||||
}
|
||||
?>"
|
||||
maxlength="20" tabindex="1" /><br />
|
||||
|
||||
<!-- ======================================================
|
||||
SUBJECT (reply logic păstrată 100%)
|
||||
====================================================== -->
|
||||
<input class="text" type="text" name="be" id="subject"
|
||||
value="<?php
|
||||
if (isset($message->reply['topic'])) {
|
||||
|
||||
if (preg_match("/re([0-9]+)/i", $message->reply['topic'], $c)) {
|
||||
$c = $c[1] + 1;
|
||||
echo strip_tags(preg_replace("/re[0-9]+/i", "re" . ($c), $message->reply['topic']));
|
||||
} else {
|
||||
echo "re1:" . strip_tags($message->reply['topic']);
|
||||
}
|
||||
}
|
||||
?>"
|
||||
maxlength="35" tabindex="2" />
|
||||
|
||||
</div>
|
||||
|
||||
<a id="adbook" href="#" onclick="toggleFriendsList(); return false;">
|
||||
<img src="img/x.gif" alt="Addressbook" title="Addressbook" />
|
||||
</a>
|
||||
|
||||
<div class="clear"></div>
|
||||
<div class="line"></div>
|
||||
|
||||
<!-- ======================================================
|
||||
MESSAGE AREA (NU MODIFICĂM BB EDITOR)
|
||||
====================================================== -->
|
||||
<div bbArea="message" id="message_container" name="message_container">
|
||||
<div id="message_toolbar" name="message_toolbar">
|
||||
<a href="javascript:void(0);" bbType="d" bbTag="b" ><div title="bold" alt="bold" class="bbButton bbBold"></div></a>
|
||||
@@ -84,96 +126,152 @@ echo "re1:".strip_tags($message->reply['topic']); }} ?>" maxlength="35" onkeyup=
|
||||
</div>
|
||||
</div>
|
||||
<div class="line bbLine"></div>
|
||||
|
||||
<textarea id="message" name="message" onkeyup="copyElement('body')" tabindex="3" class="textarea write message"><?php if(isset($message->reply['message'])) { echo " \n\n_________________________
|
||||
Reply: ".$database->getUserField($id,'username',0)."
|
||||
\n".stripslashes($message->reply['message']); } ?></textarea>
|
||||
<div id="message_preview" name="message_preview" class="message"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var bbEditor = new BBEditor("message");
|
||||
</script>
|
||||
<p class="btn">
|
||||
<input type="hidden" name="ft" value="m2" />
|
||||
<button name="delmsg" value="" id="btn_save" class="trav_buttons" onclick="this.disabled=true;this.form.submit();" tabindex="4">Send</button>
|
||||
<?php
|
||||
if ($session->access == ADMIN && ADMIN_RECEIVE_SUPPORT_MESSAGES && !empty($_GET['mid'])) {
|
||||
?><br />
|
||||
<input type="checkbox" name="as_support"<?php echo ((!empty($_GET['tid']) && $_GET['tid'] == 1) ? ' checked="checked"' : ''); ?> /> Send as Support
|
||||
<?php
|
||||
} else if ($session->access == MULTIHUNTER) {
|
||||
?><br />
|
||||
<input type="checkbox" name="as_multihunter"<?php echo ((!empty($_GET['tid']) && $_GET['tid'] == 5) ? ' checked="checked"' : ''); ?> /> Send as Multihunter
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
</form>
|
||||
<div id="adressbook" class="hide"><h2>Addressbook</h2>
|
||||
<form method="post" action="nachrichten.php">
|
||||
<input type="hidden" name="ft" value="m7" />
|
||||
<input type="hidden" name="myid" value="<?php echo $session->uid; ?>" />
|
||||
<table cellpadding="1" cellspacing="1" id="friendlist">
|
||||
<?php for($i=0;$i<20;$i++) {
|
||||
if($user['friend'.$i] == 0 && $user['friend'.$i.'wait'] == 0){
|
||||
if(is_int($i/2)){ echo "<tr>"; } ?><td class="end"></td>
|
||||
<td class="pla">
|
||||
<input class="text" type="text" name="addfriends<?php echo $i; ?>" value="" maxlength="20" />
|
||||
</td>
|
||||
<td class="on"></td><?php if(!is_int($i/2)){ echo "</tr>"; }else{ echo "<td></td>";}}else if($user['friend'.$i.'wait'] == 0){
|
||||
if(is_int($i/2)){ echo "<tr>"; } ?><td class="end"><a href="nachrichten.php?delfriend=<?php echo $i; ?>"><img class="del" src="img/x.gif" alt="delete" title="delete"></td>
|
||||
<td class="pla">
|
||||
<?php echo "<a href=\"nachrichten.php?t=1&id=".$user['friend'.$i]."\">".$database->getUserField($user['friend'.$i],"username",0)."</a>"; ?>
|
||||
</td>
|
||||
<?php
|
||||
$friend = $database->getUserArray($user['friend'.$i], 1);
|
||||
if ((time()-600) < $friend['timestamp']){ // 0 Min - 10 Min
|
||||
echo " <td class=on><img class=online1 src=img/x.gif title='Now online' alt='Now online' /></td>";
|
||||
}elseif ((time()-86400) < $friend['timestamp'] && (time()-600) > $friend['timestamp']){ // 10 Min - 1 Days
|
||||
echo " <td class=on><img class=online2 src=img/x.gif title='Offline' alt='Offline' /></td>";
|
||||
}elseif ((time()-259200) < $friend['timestamp'] && (time()-86400) > $friend['timestamp']){ // 1-3 Days
|
||||
echo " <td class=on><img class=online3 src=img/x.gif title='Last 3 days' alt='Last 3 days' /></td>";
|
||||
}elseif ((time()-604800) < $friend['timestamp'] && (time()-259200) > $friend['timestamp']){
|
||||
echo " <td class=on><img class=online4 src=img/x.gif title='Last 7 days' alt='Last 7 days' /></td>";
|
||||
}else{
|
||||
echo " <td class=on><img class=online5 src=img/x.gif title=inactive alt=inactive /></td>";
|
||||
}
|
||||
if(!is_int($i/2)){ echo "</tr>"; }else{ echo "<td></td>";}
|
||||
}else{
|
||||
$friend = $database->getUserArray($user['friend'.$i.'wait'], 1);
|
||||
$friendwait = 0;
|
||||
for($j=0;$j<20;$j++) {
|
||||
if($friend['friend'.$j.'wait'] == $session->uid){
|
||||
$wait = $friend['friend'.$j];
|
||||
$friendwait = $friend['id'];
|
||||
|
||||
<textarea id="message" name="message" tabindex="3" class="textarea write message"><?php
|
||||
if (isset($message->reply['message'])) {
|
||||
echo "\n\n_________________________\nReply: "
|
||||
. getCachedUsername($id, $database, $userCache)
|
||||
. "\n"
|
||||
. stripslashes($message->reply['message']);
|
||||
}
|
||||
}
|
||||
if($wait == 0){
|
||||
if(is_int($i/2)){ echo "<tr>"; } ?><td class="end"><a href="nachrichten.php?delfriend=<?php echo $i; ?>"><img class="del" src="img/x.gif" alt="delete" title="delete"></td>
|
||||
<td class="pla">
|
||||
<?php echo "<img src=\"../../".GP_LOCATE."img/a/clock-inactive.gif\" alt=\"wait for confirm\" title=\"wait for confirm\"><a href=\"nachrichten.php?t=1&id=".$user['friend'.$i]."\"> ".$database->getUserField($user['friend'.$i],"username",0)."</a>"; ?>
|
||||
</td>
|
||||
<?php
|
||||
echo "<td class=on></td>";
|
||||
if(!is_int($i/2)){ echo "</tr>"; }else{ echo "<td></td>";}
|
||||
}else{
|
||||
if(is_int($i/2)){ echo "<tr>"; } ?><td class="end"><a href="nachrichten.php?delfriend=<?php echo $i; ?>"><img class="del" src="img/x.gif" alt="delete" title="delete"></td>
|
||||
<td class="pla">
|
||||
<?php echo "<a href=\"nachrichten.php?t=1&id=".$friendwait."\">".$database->getUserField($friendwait,"username",0)."</a>"; ?>
|
||||
</td>
|
||||
<td class="on"><a href="nachrichten.php?confirm=<?php echo $i; ?>"><img src="../../<?php echo GP_LOCATE; ?>img/a/online6.gif" alt="confirm" title="confirm"></a></td>
|
||||
?></textarea>
|
||||
|
||||
<div id="message_preview" class="message"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var bbEditor = new BBEditor("message");
|
||||
</script>
|
||||
|
||||
<p class="btn">
|
||||
<input type="hidden" name="ft" value="m2" />
|
||||
<button name="delmsg" id="btn_save" class="trav_buttons"
|
||||
onclick="this.disabled=true;this.form.submit();" tabindex="4">Send</button>
|
||||
|
||||
<?php
|
||||
if(!is_int($i/2)){ echo "</tr>"; }else{ echo "<td></td>";}
|
||||
}
|
||||
}} ?>
|
||||
</tr></table>
|
||||
<p class="btn">
|
||||
<input type="image" value="" name="s1" id="btn_save" class="dynamic_img" src="img/x.gif" alt="save" />
|
||||
</p>
|
||||
</form><a href="#" onclick="closeFriendsList(); return false;"><img src="img/x.gif" id="close" alt="close adressbook" title="close adressbook"/></a></div></div>
|
||||
<div id="write_foot" class="msg_foot">
|
||||
</div>
|
||||
// ======================================================
|
||||
// ADMIN / MULTIHUNTER OPTIONS
|
||||
// ======================================================
|
||||
if ($session->access == ADMIN && ADMIN_RECEIVE_SUPPORT_MESSAGES && !empty($_GET['mid'])) {
|
||||
?>
|
||||
<br />
|
||||
<span style="color: #DD0000"><b>Warning:</b> you can't use the values <b>[message]</b> or <b>[/message]</b> in your message because it can cause problem with bbcode system.</span>
|
||||
<input type="checkbox" name="as_support"
|
||||
<?php echo ((!empty($_GET['tid']) && $_GET['tid'] == 1) ? 'checked="checked"' : ''); ?> />
|
||||
Send as Support
|
||||
<?php
|
||||
} elseif ($session->access == MULTIHUNTER) {
|
||||
?>
|
||||
<br />
|
||||
<input type="checkbox" name="as_multihunter"
|
||||
<?php echo ((!empty($_GET['tid']) && $_GET['tid'] == 5) ? 'checked="checked"' : ''); ?> />
|
||||
Send as Multihunter
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- ======================================================
|
||||
ADDRESSBOOK (OPTIMIZAT CU CACHE)
|
||||
====================================================== -->
|
||||
<div id="adressbook" class="hide">
|
||||
<h2>Addressbook</h2>
|
||||
|
||||
<form method="post" action="nachrichten.php">
|
||||
<input type="hidden" name="ft" value="m7" />
|
||||
<input type="hidden" name="myid" value="<?php echo (int)$session->uid; ?>" />
|
||||
|
||||
<table cellpadding="1" cellspacing="1" id="friendlist">
|
||||
|
||||
<?php
|
||||
for ($i = 0; $i < 20; $i++) {
|
||||
|
||||
$friendId = (int)$user['friend' . $i];
|
||||
$waitId = (int)$user['friend' . $i . 'wait'];
|
||||
|
||||
if ($friendId == 0 && $waitId == 0) {
|
||||
|
||||
if ($i % 2 == 0) echo "<tr>";
|
||||
|
||||
echo '<td class="end"></td>
|
||||
<td class="pla">
|
||||
<input class="text" type="text" name="addfriends'.$i.'" maxlength="20" />
|
||||
</td>
|
||||
<td class="on"></td>';
|
||||
|
||||
if ($i % 2 != 0) echo "</tr>";
|
||||
|
||||
} elseif ($waitId == 0) {
|
||||
|
||||
if ($i % 2 == 0) echo "<tr>";
|
||||
|
||||
$username = getCachedUsername($friendId, $database, $userCache);
|
||||
$friend = $database->getUserArray($friendId, 1);
|
||||
|
||||
echo '<td class="end"><a href="nachrichten.php?delfriend='.$i.'">
|
||||
<img class="del" src="img/x.gif" alt="delete"></a></td>
|
||||
<td class="pla">
|
||||
<a href="nachrichten.php?t=1&id='.$friendId.'">'.$username.'</a>
|
||||
</td>';
|
||||
|
||||
// ONLINE STATUS (logică identică)
|
||||
$time = time() - $friend['timestamp'];
|
||||
|
||||
if ($time < 600) {
|
||||
echo "<td class=on><img class=online1 src=img/x.gif /></td>";
|
||||
} elseif ($time < 86400) {
|
||||
echo "<td class=on><img class=online2 src=img/x.gif /></td>";
|
||||
} elseif ($time < 259200) {
|
||||
echo "<td class=on><img class=online3 src=img/x.gif /></td>";
|
||||
} elseif ($time < 604800) {
|
||||
echo "<td class=on><img class=online4 src=img/x.gif /></td>";
|
||||
} else {
|
||||
echo "<td class=on><img class=online5 src=img/x.gif /></td>";
|
||||
}
|
||||
|
||||
if ($i % 2 != 0) echo "</tr>";
|
||||
|
||||
} else {
|
||||
|
||||
// WAIT / CONFIRM logic (neatinsă)
|
||||
$friend = $database->getUserArray($waitId, 1);
|
||||
|
||||
if ($i % 2 == 0) echo "<tr>";
|
||||
|
||||
echo '<td class="end"><a href="nachrichten.php?delfriend='.$i.'">
|
||||
<img class="del" src="img/x.gif"></a></td>
|
||||
<td class="pla">
|
||||
<img src="../../'.GP_LOCATE.'img/a/clock-inactive.gif">
|
||||
<a href="nachrichten.php?t=1&id='.$waitId.'">'
|
||||
. getCachedUsername($waitId, $database, $userCache) .
|
||||
'</a></td>
|
||||
<td class="on"></td>';
|
||||
|
||||
if ($i % 2 != 0) echo "</tr>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
</table>
|
||||
|
||||
<p class="btn">
|
||||
<input type="image" id="btn_save" class="dynamic_img" src="img/x.gif" alt="save" />
|
||||
</p>
|
||||
|
||||
</form>
|
||||
|
||||
<a href="#" onclick="closeFriendsList(); return false;">
|
||||
<img src="img/x.gif" id="close" alt="close adressbook" />
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="write_foot" class="msg_foot"></div>
|
||||
|
||||
<br />
|
||||
|
||||
<span style="color: #DD0000">
|
||||
<b>Warning:</b> you can't use the values <b>[message]</b> or <b>[/message]</b>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user