Просмотр файла usr/wall.php

Размер файла: 15.89Kb
<?php
include('../inc/core.php');


if (!is_usr()) { $_SESSION['info'] = 'Необходима авторизация'; redirect(URL); die(); }

if (empty($_GET['act'])) $act = 'index';
	else $act = htmlspecialchars($_GET['act']);
	
if (empty($_GET['id']) && empty($_GET['act'])) { 
	$id = $_SESSION['id']; $act = 'my'; }
	elseif (empty($_GET['act']) && isset($_GET['id'])) { # чужая стена
		if ($_GET['id']==$_SESSION['id']) $act = 'my';
			else $act = 'view';
		$id = htmlspecialchars($_GET['id']);
	} elseif (isset($_GET['act'])) $act = htmlspecialchars($_GET['act']);

if (empty($_GET['p'])) $p = 1;
	else $p = htmlspecialchars($_GET['p']);

	
	
if ($act=='re') {
	if (empty($_GET['re'])) { redirect('wall.php'); die(); }
		else $re = htmlspecialchars($_GET['re']);
	if (empty($_GET['usr'])) { redirect('wall.php'); die(); }
		else $usr = htmlspecialchars($_GET['usr']);
	if (empty($_SESSION['text'])) $_SESSION['text'] = '';
	$pagetitle = 'Ответить';
	include('../design/'.$_SESSION['design'].'/header.php');
	echo '<div id="title_a" align="center"><b>'.$pagetitle.'</b></div>
	<div id="menu" align="center">
	<form action="wall.php?act=getadd&re='.$re.'" method="post">
	Ответ:<br>
	<input type="hidden" name="author" value="'.$_SESSION['id'].'">
	<input type="hidden" name="usr" value="'.$usr.'">
	<textarea name="text" rows="2" cols="40">'.$_SESSION['text'].'</textarea><br>
	<input type="submit" value="Ответить">
	</div>
	';
}
	
if ($act=='my') { # 
	if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
	$pagetitle = 'Моя стена';
	$count = mysql_fetch_string('SELECT COUNT(*) FROM `'.db_prefix.'wall` WHERE usr='.$_SESSION['id']);
	include('../design/'.$_SESSION['design'].'/header.php');
	if (empty($_SESSION['text'])) $_SESSION['text'] = '';
	echo '<div id="title_a" align="center"><b>'.$pagetitle.' ('.$count.')</b></div>';
	echo '<div id="menu" align="center"><ul>
	<form action="wall.php?act=getadd" method="post">
	Добавить сообщение:<br>
	<input type="hidden" name="author" value="'.$_SESSION['id'].'">
	<input type="hidden" name="usr" value="'.$_SESSION['id'].'">
	<textarea name="text" rows="2" cols="40">'.$_SESSION['text'].'</textarea><br>
	<input type="submit" value="Добавить">
	</div>
	<div id="menu">'; # показали поле добавления
	
	if ($count!=0) {
	if ($p<=0) $p = 1;
	$start = $p*wall_posts-wall_posts;
	$res = mysql_query('SELECT * FROM `'.db_prefix.'wall` WHERE usr='.$_SESSION['id'].' ORDER BY `id` DESC LIMIT '.$start.', '.wall_posts);
	while ($post = mysql_fetch_object($res)) { ####
		$author = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
		if (get_status($post->author)=='Online') {
			if (view_status==1) { ## если включен показ иконок х-статуса, то показываем его (если юзер онлайн)
				$status_icon = mysql_fetch_string('SELECT `status_id` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
				if ($status_icon!=0) $img = '<img src="../images/online.png"><img src="statusicon/'.$status_icon.'.gif">';
					else $img = '<img src="../images/online.png">';
			} else $img = '<img src="../images/online.png">';
		} else $img = $img = '<img src="../images/offline.png">';

		$post->time = $post->time+$_SESSION['time_pref'];
		if ($post->re!=0) {
			
			$to = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->re.'');
			echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
			<div class="desc"><a href="index.php?id='.$post->re.'"><b>@</b>'.$to.'</a> '.check_post($post->msg).'
			<div class="order"><div align="right">
		
			<a href="wall.php?act=del&id='.$post->id.'">Удалить</a></div></div></div>';
		} else {
			echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
			<div class="desc">'.check_post($post->msg).'<div class="order"><div align="right">
			
			<a href="wall.php?act=del&id='.$post->id.'">Удалить</a></div></div></div>';
		} 
	} #####    <div class="order" align="right"><a href="wall.php?act=del&id='.$post->id.'">Удалить</a></div>
	echo '</div>';
	echo '<div class="navigation">Страницы:';
		$prev = $p-1;
		if ($prev<1) $prev = null;
		$prevprev = $p-2;
		if ($prevprev<1) $prevprev = null;
		$last = $count/wall_posts;
		if (!is_int($last)) $last = ceil($last);
		if ($p!=$last) {
			$next = $p+1;
			if ($p+1!=$last) $nextnext = $p+2;
		}
		echo '<b>';
		if ($p!=1) echo ' <a href="wall.php?p=1">&laquo;</a> ';
			else echo ' <span>&laquo;</span> ';
		if ($p!=1 && $p!=2 && $p!=3) echo '<span> .. </span>';
		if (isset($prevprev)) echo ' <a href="wall.php?p='.$prevprev.'">'.$prevprev.'</a> ';
		if (isset($prev)) echo ' <a href="wall.php?p='.$prev.'">'.$prev.'</a> ';
		echo ' <span>'.$p.'</span> ';
		if (isset($next)) echo ' <a href="wall.php?p='.$next.'">'.$next.'</a> ';
		if (isset($nextnext)) echo ' <a href="wall.php?p='.$nextnext.'">'.$nextnext.'</a> ';
		if ($p!=$last && $p+1!=$last && $p+2!=$last) echo '<span> .. </span>';
		if ($p!=$last) echo ' <a href="wall.php?p='.$last.'">&raquo;</a> ';
			else echo ' <span>&raquo;</span> ';
		echo '</b></div>';
	
	
	
	} else {
		echo '<div align="center">На стене еще нет записей</div></div>';
	}
}

if ($act=='view') {
	if (empty($id)) { redirect('wall.php'); die(); }
	if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
	$usr = mysql_fetch_object(mysql_query('SELECT * FROM `'.db_prefix.'users` WHERE id='.$id));
	$pagetitle = 'Стена пользователя '.$usr->nick.'';
	$count = mysql_fetch_string('SELECT COUNT(*) FROM `'.db_prefix.'wall` WHERE usr='.$id);
	include('../design/'.$_SESSION['design'].'/header.php');
	echo '<div id="title_a" align="center"><b>'.$pagetitle.' ('.$count.')</b></div>';

	if ($_SESSION['id']!=$id && $usr->wall_access==1) {
		if (empty($_SESSION['text'])) $_SESSION['text'] = '';
		echo '<div id="menu" align="center"><ul>
		<form action="wall.php?act=getadd" method="post">
		Добавить сообщение:<br>
		<input type="hidden" name="author" value="'.$_SESSION['id'].'">
		<input type="hidden" name="usr" value="'.$id.'">
		<textarea name="text" rows="2" cols="40">'.$_SESSION['text'].'</textarea><br>
		<input type="submit" value="Добавить">
		</div>';
	} else {
		echo '<div align="center"><b>Пользователь запретил всем писать на его стене</b></div>';
	}
	if ($_SESSION['id']==$id) {
		if (empty($_SESSION['text'])) $_SESSION['text'] = '';
		echo '<div id="menu" align="center"><ul>
		<form action="wall.php?act=getadd" method="post">
		Добавить сообщение:<br>
		<input type="hidden" name="author" value="'.$_SESSION['id'].'">
		<input type="hidden" name="usr" value="'.$id.'">
		<textarea name="text" rows="2" cols="25">'.$_SESSION['text'].'</textarea><br>
		<input type="submit" value="Добавить">
		</div>';
	}
	
	if ($count!=0) {
	$start = $p*wall_posts-wall_posts;
	$res = mysql_query('SELECT * FROM `'.db_prefix.'wall` WHERE usr='.$id.' ORDER BY `id` DESC LIMIT '.$start.', '.wall_posts);
	echo '<div id="menu">';
	while ($post = mysql_fetch_object($res)) { ####
		$author = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
		$post->time = $post->time+$_SESSION['time_pref'];
		if (get_status($post->author)=='Online') {
			if (view_status==1) { ## если включен показ иконок х-статуса, то показываем его (если юзер онлайн)
				$status_icon = mysql_fetch_string('SELECT `status_id` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
				if ($status_icon!=0) $img = '<img src="../images/online.png"><img src="statusicon/'.$status_icon.'.gif">';
					else $img = '<img src="../images/online.png">';
			} else $img = '<img src="../images/online.png">';
		} else $img = '<img src="../images/offline.png">';
		if ($post->re!=0) {
			$to = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->re.'');
			echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
			<div class="desc"><a href="index.php?id='.$post->re.'"><b>@</b>'.$to.'</a> '.check_post($post->msg).'
			<div class="order"><div align="right">';
			if ($usr->wall_access!=0 && $post->author!=$_SESSION['id']) echo '<a href="wall.php?act=re&usr='.$id.'&re='.$post->author.'">Ответить</a>';
			if ($post->author!=$_SESSION['id']) echo '
			<a href="wall.php?act=re&usr='.$_SESSION['id'].'&re='.$post->author.'">Ответить на моей стене</a>';
			if ($post->author==$_SESSION['id'] || $_SESSION['access']>=md_wall) echo ' <a href="wall.php?act=del&id='.$post->id.'">Удалить</a>';
			echo '</div></div></div>';
		} else {
			echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
			<div class="desc">'.check_post($post->msg).'
			<div class="order"><div align="right">';
			if ($usr->wall_access!=0 && $post->author!=$_SESSION['id']) echo '<a href="wall.php?act=re&usr='.$id.'&re='.$post->author.'">Ответить</a>';
			if ($post->author!=$_SESSION['id']) echo '
			<a href="wall.php?act=re&usr='.$_SESSION['id'].'&re='.$post->author.'">Ответить на моей стене</a>';
			if ($post->author == $_SESSION['id'] || $_SESSION['access']>=md_wall) echo ' <a href="wall.php?act=del&id='.$post->id.'">Удалить</a>';
			echo '</div></div></div>';
		} 
	} echo '</div>';
	
		echo '<div class="navigation">Страницы:';
		$prev = $p-1;
		if ($prev<1) $prev = null;
		$prevprev = $p-2;
		if ($prevprev<1) $prevprev = null;
		$last = $count/wall_posts;
		if (!is_int($last)) $last = ceil($last);
		if ($p!=$last) {
			$next = $p+1;
			if ($p+1!=$last) $nextnext = $p+2;
		}
		echo '<b>';
		if ($p!=1) echo ' <a href="wall.php?p=1&id='.$id.'">&laquo;</a> ';
			else echo ' <span>&laquo;</span> ';
		if ($p!=1 && $p!=2 && $p!=3) echo '<span> .. </span>';
		if (isset($prevprev)) echo ' <a href="wall.php?p='.$prevprev.'&id='.$id.'">'.$prevprev.'</a> ';
		if (isset($prev)) echo ' <a href="wall.php?p='.$prev.'&id='.$id.'">'.$prev.'</a> ';
		echo ' <span>'.$p.'</span> ';
		if (isset($next)) echo ' <a href="wall.php?p='.$next.'&id='.$id.'">'.$next.'</a> ';
		if (isset($nextnext)) echo ' <a href="wall.php?p='.$nextnext.'&id='.$id.'">'.$nextnext.'</a> ';
		if ($p!=$last && $p+1!=$last && $p+2!=$last) echo '<span> .. </span>';
		if ($p!=$last) echo ' <a href="wall.php?p='.$last.'&id='.$id.'">&raquo;</a> ';
			else echo ' <span>&raquo;</span> ';
		echo '</b></div>';
	} else echo '<div id="menu" align="center">Стена пуста</div>';
	echo '<div id="menu"><ul>
		<li><a href="index.php?id='.$id.'"><img src="../images/back.png"> К странице пользователя</a></li>
		</ul></div>';
	
}




if ($act=='getadd') {
	if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
	if (empty($_POST['text'])) {
		$_SESSION['error'] = 'Введите сообщение';
		if (isset($_POST['usr'])) {
			$usr = htmlspecialchars($_POST['usr']);
			if ($_SESSION['id']==$usr) redirect('wall.php');
				elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
				else redirect('wall.php'.$usr);
			} else redirect('wall.php');
		die();
	} else $text = mysql_real_escape_string(htmlspecialchars(trim($_POST['text'])));
	
	if (empty($_POST['author'])) {
		$_SESSION['error'] = 'Ошибка';
		if (isset($_POST['usr'])) {
			$usr = htmlspecialchars($_POST['usr']);
			if ($_SESSION['id']==$usr) redirect('wall.php');
				elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
				else redirect('wall.php'.$usr);
			} else redirect('wall.php');
		die();
	} else {
		if (htmlspecialchars($_POST['author']!=$_SESSION['id'])) { redirect('wall.php'); die(); }		
		else $author = htmlspecialchars($_POST['author']);
	}
	
	if (empty($_POST['usr'])) { redirect('wall.php'); die(); }
		else $usr = htmlspecialchars($_POST['usr']);

	if (isset($_GET['re'])) $re = mysql_real_escape_string(htmlspecialchars(trim($_GET['re']))); ## @ник ) а-ля twitter
		else $re = 0;
		
	if (strlen($_POST['text'])>wall_maxlen) {
		$_SESSION['error'] = 'Слишком длинное сообщение';
		$_SESSION['text'] = htmlspecialchars($_POST['text']);
		if (isset($_POST['usr'])) {
			$usr = htmlspecialchars($_POST['usr']);
			if ($_SESSION['id']==$usr) redirect('wall.php');
				elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
				else redirect('wall.php?id='.$usr);
			} else redirect('wall.php');
		die();
	}
	if ($usr!=$_SESSION['id']) {
		$access = mysql_fetch_string('SELECT `wall_access` FROM `'.db_prefix.'users` WHERE id='.$usr);
		if ($access==0) {
			$_SESSION['error'] = 'Пользователь запретил писать сообщения на его стене';
			redirect('wall.php?id='.$usr);
			die();
		}
	}
	
	if (mysql_query('INSERT INTO `'.db_prefix.'wall` (author,re,msg,usr,time) VALUES ('.$author.','.$re.',"'.$text.'",'.$usr.','.time().')')) {
		if ($usr!=$_SESSION['id']) { # если пишем не на своей стене
			$object_id = mysql_insert_id();
			mysql_query('INSERT INTO `'.db_prefix.'reply` (`from`,`usr`,`object`,`time`,`status`) VALUES ('.$author.','.$usr.',"wall||'.$object_id.'",'.time().',0)');
		} else {
			if ($re!=0) {
				$object_id = mysql_insert_id();
				mysql_query('INSERT INTO `'.db_prefix.'reply` (`from`,`usr`,`object`,`time`,`status`) VALUES ('.$author.','.$re.',"wall_reply||'.$object_id.'",'.time().',0)');
			}
		}
		$_SESSION['info'] = 'Ваше сообщение добавлено';
		$_SESSION['text'] = '';
		incr_aktiv($_SESSION['id']);
	
		if (isset($_POST['usr'])) {
			$usr = htmlspecialchars($_POST['usr']);
			if ($_SESSION['id']==$usr) redirect('wall.php');
				elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
				else redirect('wall.php?id='.$usr);
			} else redirect('wall.php');
		die();
	} else {
		$_SESSION['error'] = 'Ошибка при добавлении сообщения';
		$_SESSION['text'] = htmlspecialchars($_POST['text']);
	
		if (isset($_POST['usr'])) {
			$usr = htmlspecialchars($_POST['usr']);
			if ($_SESSION['id']==$usr) redirect('wall.php');
				elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
				else redirect('wall.php'.$usr);
			} else redirect('wall.php');
		die();
	}
}






if ($act=='del') {
	if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
	if (empty($_GET['id'])) {
		redirect('wall.php');
		die();
	} else $id = htmlspecialchars($_GET['id']);
	$post = mysql_fetch_object(mysql_query('SELECT * FROM `'.db_prefix.'wall` WHERE id='.$id));
	if ($post->author==$_SESSION['id'] || $_SESSION['access']>=md_wall || $post->usr==$_SESSION['id']) {
		if (mysql_query('DELETE FROM `'.db_prefix.'wall` WHERE id='.$id)) {
			$_SESSION['info'] = 'Запись удалена';
			if ($_SESSION['id'] != $post->usr) redirect('wall.php?id='.$post->usr);  
				else redirect('wall.php');
			die();
		} else {
			$_SESSION['error'] = 'Ошибка при удалении записи';
			if ($post->author!=$post->usr) redirect('wall.php?id='.$post->usr);
				else redirect('wall.php');
			die();
		}
	} else {
		$_SESSION['error'] = 'Отказано в доступе'.$_SESSION['id'].$post->usr;
		if ($post->author!=$post->usr) redirect('wall.php?id='.$post->usr);
			else redirect('wall.php');
		die();
	}
}









include('../design/'.$_SESSION['design'].'/footer.php');
?>