View file 1/f_msg.dat

File size: 6.78Kb
<?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);
	}