feat: in-game messages can be sent as Support when allowed

This commit is contained in:
Martin Ambrus
2017-10-22 16:05:18 +02:00
parent 965ba37f67
commit ff6ca38fbf
6 changed files with 46 additions and 27 deletions
+29 -21
View File
@@ -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);
}
}
+1
View File
@@ -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:
+3 -1
View File
@@ -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 "<tr>";
}
echo "<td class=\"sel\"><input class=\"check\" type=\"checkbox\" name=\"n".$name."\" value=\"".$message->inbox1[$i-1]['id']."\" /></td>
echo "<td class=\"sel\">".((!$support_messages || ($support_messages && $message->inbox1[$i-1]['target'] != 1)) ? "<input class=\"check\" type=\"checkbox\" name=\"n".$name."\" value=\"".$message->inbox1[$i-1]['id']."\" />" : '<u><b title="Message for Support"><i>S</i></b></u>')."</td>
<td class=\"top\"><a href=\"nachrichten.php?id=".$message->inbox1[$i-1]['id']."\">".$message->inbox1[$i-1]['topic']."</a> ";
if($message->inbox1[$i-1]['viewed'] == 0) {
echo "(new)";
+3 -1
View File
@@ -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 "<tr>";
}
echo "<td class=\"sel\"><input class=\"check\" type=\"checkbox\" name=\"n".$name."\" value=\"".$message->sent1[$i-1]['id']."\" /></td>
echo "<td class=\"sel\">".((!$support_messages || ($support_messages && $message->inbox1[$i-1]['target'] != 1)) ? "<input class=\"check\" type=\"checkbox\" name=\"n".$name."\" value=\"".$message->sent1[$i-1]['id']."\" />" : '<u><b title="Sent as Support"><i>S</i></b></u>')."</td>
<td class=\"top\"><a href=\"nachrichten.php?id=".$message->sent1[$i-1]['id']."\">".$message->sent1[$i-1]['topic']."</a> ";
if($message->sent1[$i-1]['viewed'] == 0) {
echo "(unread)";
+10 -3
View File
@@ -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/>
</div>
<a id="adbook" href="#" onclick="toggleFriendsList(); return false;"><img src="img/x.gif" alt="Addressbook" title="Addressbook" /></a>
<div class="clear"></div>
@@ -94,7 +94,14 @@ Reply: ".$database->getUserField($id,'username',0)."
</script>
<p class="btn">
<input type="hidden" name="ft" value="m2" />
<input type="image" value="" name="s1" id="btn_send" class="dynamic_img" src="img/x.gif" alt="send" onclick="this.disabled=true;this.form.submit();" tabindex=4; />
<input type="image" value="" name="s1" id="btn_send" class="dynamic_img" src="img/x.gif" alt="send" onclick="this.disabled=true;this.form.submit();" tabindex=4; />
<?php
if (($session->access == MULTIHUNTER || $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
}
?>
</p>
</form>
<div id="adressbook" class="hide"><h2>Addressbook</h2>
-1
View File
@@ -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)