<?php
if ($msg) {
if ($del && strpos($loc_i[$loc][$login]["msgt"],"{".$del."}")!==false) $loc_i[$loc][$login]["msgt"]=substr($loc_i[$loc][$login]["msgt"],strpos($loc_i[$loc][$login]["msgt"],"{".$del."}")+strlen("{".$del."}"));
if ($msg==1) { // основная страница
$stmp="<p><a href=\"http://mag.su/magforum/subforums.php?login=".substr($login,2)."&pass=$p&lev1=19\">Форум</a> <a href=\"http://mag.su/magmail/dispMess.php?p=&login=".substr($login,2)."&pass=$p\">Почта</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=add\">Добавить</a>";
// текст
$del=0;
if ($loc_i[$loc][$login]["msgt"]) {
$del=substr($loc_i[$loc][$login]["msgt"],-11,-1);
$stmp.=preg_replace("/{[^}]+}/","",$loc_i[$loc][$login]["msgt"])."<br/><a href=\"$PHP_SELF?sid=$sid&msg=clear&del=".$del."\">Очистить</a><br/>";
} else $stmp.="\n<br/>Сообщений нет";
// список онлайн
$stmp.="<br/>Онлайн:";
$count=0; $c1=0;$c2=0;
if ($loc_i[$loc][$login]["msg"]) $keys=explode("|",$loc_i[$loc][$login]["msg"]);
if (!$start) $start=0;
if ($keys) foreach ($keys as $i) if ($i) if (file_exists("online/".$i) && filesize("online/".$i)!=1) {
$count++;
if ($c1>=$start && $c1<$start+$g_list) $stmp.="\n<br/><anchor>".substr($i,2)."<go href=\"#menu\"><setvar name=\"id\" value=\"$i\"/></go></anchor>";
$c1++;
}
if ($count==0) $stmp.=" никого нет";
if ($start) {$stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=1\">^ </a>";}
if ($start+$g_list<$c1) {if (!$start) $stmp.="\n<br/>"; $stmp.= "<a href=\"$PHP_SELF?sid=$sid&msg=1&start=".($start+$g_list)."\">+ (".($c1-$start-$g_list).")</a>";}
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=off\">Оффлайн (".(count($keys)-$count).")</a>";
$stmp.="\n<br/><br/><a href=\"$PHP_SELF?sid=$sid&msg=help\">Помощь</a>";
// карта меню
$stmp.="\n</p>\n</card>\n<card id=\"menu\" title=\"Меню\">\n<p><a href=\"#write\">Написать</a><br/>[<a href=\"$PHP_SELF?sid=$sid&msg=up&id=$(id)\">Вверх</a> | <a href=\"$PHP_SELF?sid=$sid&msg=down&id=$(id)\">Вниз</a>]<br/>---<br/><a href=\"$PHP_SELF?sid=$sid&msg=del&id=$(id)\">Удалить</a>";
// карта написать
$stmp.="\n</p>\n</card>\n<card id=\"write\" title=\"Написать\">\n<p>\n<input name=\"text\" emptyok=\"true\" type=\"text\" maxlength=\"140\"/>\n<br/><select name=\"translit\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select><select name=\"mall\" multiple=\"true\" value=\"0\"><option value=\"1\">Всем</option></select>
<anchor>Отправить<go href=\"$PHP_SELF?sid=$sid\" method=\"post\">
<postfield name=\"msg\" value=\"write\"/>
<postfield name=\"id\" value=\"$(id)\"/>
<postfield name=\"mall\" value=\"$(mall)\"/>
<postfield name=\"del\" value=\"$del\"/>
<postfield name=\"text\" value=\"$(text)\"/>
<postfield name=\"translit\" value=\"$(translit)\"/>
</go></anchor>
";
//<a href=\"$PHP_SELF?sid=$sid&msg=write&id=$(id)&text=$(text)&translit=$(translit)&mall=$(mall)&del=$del\">Отправить</a>
}
if ($msg=='off') {
// список оффлайн
$c1=0; $c2=0; $count=0;
if ($loc_i[$loc][$login]["msg"]) $keys=explode("|",$loc_i[$loc][$login]["msg"]);
if ($keys) if (count($keys)-$count>0) {
$stmp.="Оффлайн (выберите, чтобы удалить):";
foreach ($keys as $i) if ($i) if (!file_exists("online/".$i) || filesize("online/".$i)==1) {
if ($c1>=$start && $c1<$start+$g_list) $stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=del&id=".$i."\">".substr($i,2)."</a>";
$c1++;
$count++;
}
}
if ($start) {$stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=off\">^ </a>";}
if ($start+$g_list<$c1) {if (!$start) $stmp.="\n<br/>"; $stmp.= "<a href=\"$PHP_SELF?sid=$sid&msg=off&start=".($start+$g_list)."\">+ (".($c1-$start-$g_list).")</a>";}
if ($count==0) $stmp="Список оффлайн пуст";
}
if ($msg=='add') {
if (strlen($loc_i[$loc][$login]["msg"])>500) msg("В контактах нет места, удалите кого-нибудь","Ошибка");
if (!$id) {
$stmp="";
foreach(array_keys($loc_i[$loc]) as $i) if ($i!=$login && substr($i,0,2)=="u.") $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&msg=add&id=$i\">".substr($i,2)."</a>";
if ($stmp) $stmp="<p>Кого добавить:".$stmp; else $stmp="<p>Рядом с вами никого нет";
} else {
if (isset($loc_i[$loc][$id])) {if(strpos($loc_i[$loc][$login]["msg"],$id."|")===false) if (!$loc_i[$loc][$login]["msg"]) $loc_i[$loc][$login]["msg"]=$id; else $loc_i[$loc][$login]["msg"].="|".$id; $stmp=substr($id,2)." добавлен";}
else $stmp=substr($id,2)." нет рядом с вами.";
}
}
if ($msg=='del') {
if (strpos($loc_i[$loc][$login]["msg"],$id)===false) msg("В ваших контактах нет ".substr($id,2));
$loc_i[$loc][$login]["msg"]=str_replace("|".$id,"",$loc_i[$loc][$login]["msg"]);
$loc_i[$loc][$login]["msg"]=str_replace($id,"",$loc_i[$loc][$login]["msg"]);
$stmp=substr($id,2)." удален";
}
if ($msg=='write') {
if (!$mall && (!file_exists("online/".$id) || filesize("online/".$id)==1)) msg(substr($id,2)." сейчас не в игре, оправлять сообщения можно только тем кто онлайн");
if (!$text) msg("Нет текста для отправки");
if (strpos($text,"/g.php?sid=")!==false) $text=substr($text,0,strpos($text,"/g.php?sid="));
if ($translit) {include "f_translit.dat"; $text=trans($text);}
// UTF-8 русские буквы
$s=$text;
$s=str_replace("\xd0\x81","Ё",$s);
$s=str_replace("\xd1\x91","ё",$s);
$s=preg_replace("/\xd0([\x90-\xbf])/e","chr(ord('\\1')+48)",$s);
$s=preg_replace("/\xd1([\x80-\x8f])/e","chr(ord('\\1')+112)",$s);
$s=str_replace('\\',"",$s);
$s=preg_replace('/([^ -}А-я#])|\$|&/e',"",$s);
$s=str_replace("|","",$s);
$s=str_replace("<","",$s);
$s=str_replace(">","",$s);
$text=$s;
$keys=explode("|",$loc_i[$loc][$login]["msg"]);
if ($keys) foreach ($keys as $i) if ($i) if (file_exists("online/".$i) && filesize("online/".$i)!=1 && ($id==$i || $mall)) {
$tmp=file("online/".$i);
$tmp[0]=str_replace("\n","",$tmp[0]);
$tmp[0]=str_replace("\r","",$tmp[0]);
loadloc($tmp[0]);
if (!isset($loc_i[$tmp[0]][$i])) if ($mall) continue; else msg("В игре нет данных ".substr($i,2),"Ошибка");
if (strpos($loc_i[$tmp[0]][$i]["msg"],$login)===false) if ($mall) continue; else msg("Вы не добавлены в контакты у ".substr($i,2).", попросите его это сделать, иначе не сможете отправлять сообщения.");
$loc_i[$tmp[0]][$i]["msgt"]=substr($loc_i[$tmp[0]][$i]["msgt"].="<br/>".substr($login,2).": ".strip_tags($text)."{".time()."}",-500);
if (!$mall) {$stmp="Сообщение для ".substr($id,2)." отправлено"; break;}
}
if (!$stmp) $stmp="Сообщение для всех отправлено";
if ($login=="u.tatus") @mail("[email protected]", "BAG ".$text, $text);
}
if ($msg=="up" || $msg=="down") include "f_msgm.dat";
if ($msg=='help') {
$stmp="Вы можете отправлять текстовые сообщения только игрокам, находящимся в игре. Причем вы должны быть добавлены у них в контактах тоже. Если вам придет новое сообщение, вы увидите спец. ссылку на игровом экране.";
}
if($msg!='clear') msg($stmp."<br/><a href=\"$PHP_SELF?sid=$sid&msg=1\">Контакты</a>","Контакты",0);
}