diff --git a/GameEngine/Message.php b/GameEngine/Message.php index 92610cf5..7f5a2a46 100755 --- a/GameEngine/Message.php +++ b/GameEngine/Message.php @@ -118,26 +118,31 @@ class Message { public function quoteMessage($id) { foreach($this->inbox as $message) { if($message['id'] == $id) { - $message = preg_replace('/\[message\]/', '', $message); - $message = preg_replace('/\[\/message\]/', '', $message); - for($i=1;$i<=$message['alliance'];$i++){ - $message = preg_replace('/\[alliance'.$i.'\]/', '[alliance0]', $message); - $message = preg_replace('/\[\/alliance'.$i.'\]/', '[/alliance0]', $message); - } - for($i=0;$i<=$message['player'];$i++){ - $message = preg_replace('/\[player'.$i.'\]/', '[player0]', $message); - $message = preg_replace('/\[\/player'.$i.'\]/', '[/player0]', $message); - } - for($i=0;$i<=$message['coor'];$i++){ - $message = preg_replace('/\[coor'.$i.'\]/', '[coor0]', $message); - $message = preg_replace('/\[\/coor'.$i.'\]/', '[/coor0]', $message); - } - for($i=0;$i<=$message['report'];$i++){ - $message = preg_replace('/\[report'.$i.'\]/', '[report0]', $message); - $message = preg_replace('/\[\/report'.$i.'\]/', '[/report0]', $message); - } - $this->reply = $_SESSION['reply'] = $message; - header("Location: nachrichten.php?t=1&id=" . $message['owner']); + $message = preg_replace('/\[message\]/', '', $message); + $message = preg_replace('/\[\/message\]/', '', $message); + + for($i=1;$i<=$message['alliance'];$i++){ + $message = preg_replace('/\[alliance'.$i.'\]/', '[alliance0]', $message); + $message = preg_replace('/\[\/alliance'.$i.'\]/', '[/alliance0]', $message); + } + + for($i=0;$i<=$message['player'];$i++){ + $message = preg_replace('/\[player'.$i.'\]/', '[player0]', $message); + $message = preg_replace('/\[\/player'.$i.'\]/', '[/player0]', $message); + } + + for($i=0;$i<=$message['coor'];$i++){ + $message = preg_replace('/\[coor'.$i.'\]/', '[coor0]', $message); + $message = preg_replace('/\[\/coor'.$i.'\]/', '[/coor0]', $message); + } + + for($i=0;$i<=$message['report'];$i++){ + $message = preg_replace('/\[report'.$i.'\]/', '[report0]', $message); + $message = preg_replace('/\[\/report'.$i.'\]/', '[/report0]', $message); + } + + $this->reply = $_SESSION['reply'] = $message; + header("Location: nachrichten.php?t=1&id=" . $message['owner'] . "&mid=" . $message['id'] . "&tid=" . $message['target']); exit; } } @@ -489,7 +494,10 @@ class Message { } } } - $database->sendMessage($user, $session->uid, htmlspecialchars(addslashes($topic)), htmlspecialchars(addslashes($text)), 0, $alliance, $player, $coor, $report); + + // check if we're not sending this as support + $support_from_admin_allowed = (($session->access == MULTIHUNTER || $session->access == ADMIN) && ADMIN_RECEIVE_SUPPORT_MESSAGES); + $database->sendMessage($user, ((!empty($_POST['as_support']) && $support_from_admin_allowed) ? 1 : $session->uid), htmlspecialchars(addslashes($topic)), htmlspecialchars(addslashes($text)), 0, $alliance, $player, $coor, $report); } } diff --git a/README b/README index 2d89c35f..d7095c8a 100644 --- a/README +++ b/README @@ -47,6 +47,7 @@ martinambrus changes: 35. fixed displaying of current Quest in Admin 36. fixed OK message in Admin when resetting All Players' PLUS 37. new config option to show Support messages in Admin's mailbox +38. new feature: allowing messages to be sent as Support from in-game when user is Admin + it's allowed in config Shadowss changes: diff --git a/Templates/Message/inbox.tpl b/Templates/Message/inbox.tpl index 4e8a945b..eddcf797 100644 --- a/Templates/Message/inbox.tpl +++ b/Templates/Message/inbox.tpl @@ -55,6 +55,8 @@ $s = 0; } $name = 1; + $support_messages = (($session->access == MULTIHUNTER || $session->access == ADMIN) && ADMIN_RECEIVE_SUPPORT_MESSAGES); + for($i=(1+$s);$i<=(10+$s);$i++) { if(count($message->inbox1) >= $i) { if($message->inbox1[$i-1]['owner'] <= 1) { @@ -65,7 +67,7 @@ else { echo ""; } - echo "inbox1[$i-1]['id']."\" /> + echo "".((!$support_messages || ($support_messages && $message->inbox1[$i-1]['target'] != 1)) ? "inbox1[$i-1]['id']."\" />" : 'S')." inbox1[$i-1]['id']."\">".$message->inbox1[$i-1]['topic']." "; if($message->inbox1[$i-1]['viewed'] == 0) { echo "(new)"; diff --git a/Templates/Message/sent.tpl b/Templates/Message/sent.tpl index 3b70f9c7..7ceb97de 100644 --- a/Templates/Message/sent.tpl +++ b/Templates/Message/sent.tpl @@ -57,6 +57,8 @@ $s = 0; } $name = 1; + $support_messages = (($session->access == MULTIHUNTER || $session->access == ADMIN) && ADMIN_RECEIVE_SUPPORT_MESSAGES); + for($i=(1+$s);$i<=(10+$s);$i++) { if(count($message->sent1) >= $i) { if($message->sent1[$i-1]['target'] == 0) { @@ -65,7 +67,7 @@ else { echo ""; } - echo "sent1[$i-1]['id']."\" /> + echo "".((!$support_messages || ($support_messages && $message->inbox1[$i-1]['target'] != 1)) ? "sent1[$i-1]['id']."\" />" : 'S')." sent1[$i-1]['id']."\">".$message->sent1[$i-1]['topic']." "; if($message->sent1[$i-1]['viewed'] == 0) { echo "(unread)"; diff --git a/Templates/Message/write.tpl b/Templates/Message/write.tpl index 944d988c..2d2013c9 100644 --- a/Templates/Message/write.tpl +++ b/Templates/Message/write.tpl @@ -53,9 +53,9 @@ $user = $database->getUserArray($session->uid, 1); if (preg_match("/re([0-9]+)/i",$message->reply['topic'],$c)) { $c = $c[1]+1; - echo $message->reply['topic'] = preg_replace("/re[0-9]+/i","re".($c),$message->reply['topic']); + echo $message->reply['topic'] = strip_tags(preg_replace("/re[0-9]+/i","re".($c),$message->reply['topic'])); }else{ -echo "re1:".$message->reply['topic']; }} ?>" maxlength="35" onkeyup="copyElement('subject')" tabindex=2/> +echo "re1:".strip_tags($message->reply['topic']); }} ?>" maxlength="35" onkeyup="copyElement('subject')" tabindex=2/> Addressbook
@@ -94,7 +94,14 @@ Reply: ".$database->getUserField($id,'username',0)."

- + + access == MULTIHUNTER || $session->access == ADMIN) && ADMIN_RECEIVE_SUPPORT_MESSAGES && !empty($_GET['mid'])) { + ?>
+ /> Send as Support +

Addressbook

diff --git a/todo.txt b/todo.txt index 6913c7fe..6847cca8 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,3 @@ -- allow writing messages as Support if Admin and showing Support messages in inbox - cannot delete a single medal in admin - add back buttons to Admin where there are not (like editing a user) - disallow installation if existing data are in place, or world map would end up screwed and villages not showing (because there can be multiple villages/oasis generated for one square then)