Просмотр файла 1/f_msg.dat

Размер файла: 8.22Kb
<?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 = "<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 );
}

?>