Файл: www/gp/forum.php
Строк: 196
<?php
include '../config.php';
switch($_GET['act']){
default:
if(isset($_GET['tid'])){
$tid=intval($_GET['tid']);
$c=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$tid'"));
$r=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
$r1=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_cat` WHERE `id`='$r[id_cat]'"));
$r2=mysql_fetch_array(mysql_query("SELECT * FROM `group` WHERE `id`='$r1[id_gp]'"));
$pe=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$r1[id_gp]' AND `id_user`='$aut[id]'"));
$cou=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
if(!$cou){
div('Ошибка');
echo 'Тема за данным номером не найдена в базе данных';
}else{
$po=mysql_num_rows(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$r1[id_gp]' AND `id_user`='$aut[id]'"));
if(!$po and $r2['close']==1){
div('Ошибка');
echo 'Необходимо иметь минимум права пользователя группы для доступа к этому разделу!';
}else{
div($r['name']);
echo '» <a href="/gp/?gid='.$r1['id_gp'].'"><b>'.htmlspecialchars(stripslashes($r2['name'])).'</b></a><br/>» <a href="forum.php?gid='.$r1['id_gp'].'"><b>Форум группы</b></a><br/>» <a href="forum.php?cat_id='.$r['id_cat'].'"><b>'.htmlspecialchars(stripslashes($r1['name'])).'</b></a><br/><br/>';
if($r['close']==0){
echo '» <a href="forum.php?act=add&tid='.$tid.'">Написать</a><br/>';
}else{
$u_c=get_user($r['close_id']);
echo 'Тема закрыта<br/>Закрыл <a href="../info.php?id='.$r['close_id'].'">'.$u_c['login'].'</a><br/>['.data($r['close_time']).']<br/>';}
echo 'Постов: '.$c.'<br/>';
$st=15;
$cp=ceil($c/$st);
if(isset($_GET['p']) and !empty($_GET['p']) and is_numeric($_GET['p']) and $_GET['p']>1 and $_GET['p']<=$cp){
$p=intval($_GET['p']);
}else{
$p=1;}
$start=$p*$st-$st;
$q=mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$tid' ORDER BY `time` ASC LIMIT $start,$st");
while($e=mysql_fetch_array($q)){
$s=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$r1[id_gp]' AND `id_user`='$e[id_user]'"));
$stat=array('','Мод','Адм','Адм');
$u=get_user($e[id_user]);
$n++;
if(is_integer($n/2)){
echo '<div class="msg2">';
}else{
echo '<div class="msg1">';}
$pol=array('[м]','[ж]');
echo $pol[$u['pol']].' <a href="forum.php?act=add&tid='.$tid.'&to_id='.$e['id_user'].'"><b>'.$u['login'].'</b></a> '.$stat[$s['status']].' '.online($e['id_user']);
if(isset($aut)){
echo ' <a href="forum.php?act=add&post_id='.$e['id'].'&tid='.$tid.'">»</a>';}
if($pe['status']==1 or $pe['status']==2 or $pe['status']==3){
echo ' [<a href="forum.php?act=del&post_id='.$e['id'].'"><font color="red"><b>Удл</b></font></a>]';}
echo '<br/>['.data($e['time']).']<br/>'.output($e['msg']).'<br/>';
echo '</div>';}
if(($pe['status']==2 or $pe['status']==3) or $r['close']==0){
echo '<form action="forum.php?act=add&tid='.$tid.'" method="POST">';
echo '<input type="text" name="msg" size="15">';
echo '<input type="submit" value="Сказать"></form>';}
navi($p,$cp,'forum.php?tid='.$tid.'&','tid',$tid);
if($pe['status']==1 or $pe['status']==2 or $pe['status']==3){
echo 'Опции над темой<br/>';
if(!isset($_POST['key'])){
echo '<form action="forum.php?tid='.$tid.'" method="POST">';
echo '<select name="key">';
echo '<option value="ch">Установка категории</option>
<option value="edit">Редактирование темы</option>
<option value="del">Удаление темы</option>';
echo '</select><br/>';
echo '<input type="submit" value="Перейти"></form>';
}else{
if($_POST['key']=='ch'){
header('location: forum.php?act=cat_set&tid='.$tid);}
if($_POST['key']=='edit'){
header('location: forum.php?act=edit&tid='.$tid);}
if($_POST['key']=='del'){
header('location: forum.php?act=del&tid='.$tid);}}}}}
}else{
if(isset($_GET['cat_id'])){
$cat_id=intval($_GET['cat_id']);
$r=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_cat` WHERE `id`='$cat_id'"));
div($r['name']);
$f=mysql_fetch_array(mysql_query("SELECT * FROM `group` WHERE `id`='$r[id_gp]'"));
$po=mysql_num_rows(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$r[id_gp]' AND `id_user`='$aut[id]'"));
if(!$po and $f['close']==1){
div('Ошибка');
echo 'Необходимо иметь минимум права пользователя группы для доступа к этому разделу!';
}else{
$k=mysql_fetch_array(mysql_query("SELECT * FROM `group_cat` WHERE `id`='$f[id_cat]'"));
$ko=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id_cat`='$cat_id'"));
echo 'Категория: <a href="/gp/?cid='.$f['id_cat'].'"><b>'.htmlspecialchars(stripslashes($k['name'])).'</b></a><br/>Группа: <a href="/gp/?gid='.$r['id_gp'].'"><b>'.htmlspecialchars(stripslashes($f['name'])).'</b></a><br/>» <a href="forum.php?gid='.$r['id_gp'].'"><b>Форум группы</b></a><br/><br/>';
echo '» <a href="forum.php?act=add&cat_id='.$cat_id.'">Новая тема</a><br/>Тем в категории: '.$ko.'<br/>';
$st=10;
$cp=ceil($ko/$st);
if(isset($_GET['p']) and !empty($_GET['p']) and is_numeric($_GET['p']) and $_GET['p']>1 and $_GET['p']<=$cp){
$p=intval($_GET['p']);
}else{
$p=1;}
$start=$p*$st-$st;
$q=mysql_query("SELECT * FROM `group_forum_theme` WHERE `id_cat`='$cat_id' ORDER BY `num`,`time` DESC LIMIT $start,$st");
while($e=mysql_fetch_array($q)){
$x=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$e[id]' ORDER BY `time` ASC LIMIT 1"));
$x1=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$e[id]' ORDER BY `time` DESC LIMIT 1"));
$u1=get_user($x['id_user']);
$u2=get_user($x1['id_user']);
$count=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$e[id]'"));
if($e['close']==0)$close='';
if($e['close']==1)$close='# ';
$n++;
if(is_integer($n/2)){
echo '<div class="msg2">';
}else{
echo '<div class="msg1">';}
echo $close.'<a href="forum.php?tid='.$e['id'].'">'.htmlspecialchars(stripslashes($e['name'])).'</a> ['.$count.']<br/>['.$u1['login'].'/'.$u2['login'].']<br/>['.data($e['time']).']<br/>';
echo '</div>';}
navi($p,$cp,'forum.php?cat_id='.$cat_id.'&','cat_id',$cat_id);}
}else{
div('Форум группы');
$gid=intval($_GET['gid']);
$cou=mysql_num_rows(mysql_query("SELECT * FROM `group` WHERE `id`='$gid'"));
if(!$cou){
div('Ошибка');
echo 'Группа за данным номером не найдена в базе данных';
}else{
$pe=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$gid' AND `id_user`='$aut[id]'"));
$f=mysql_fetch_array(mysql_query("SELECT * FROM `group` WHERE `id`='$gid'"));
$po=mysql_num_rows(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$gid' AND `id_user`='$aut[id]'"));
if(!$po and $f['close']==1){
div('Ошибка');
echo 'Необходимо иметь минимум права пользователя группы для доступа к этому разделу!';
}else{
$k=mysql_fetch_array(mysql_query("SELECT * FROM `group_cat` WHERE `id`='$f[id_cat]'"));
echo 'Категория: <a href="/gp/?cid='.$f['id_cat'].'"><b>'.htmlspecialchars(stripslashes($k['name'])).'</b></a><br/>Группа: <a href="/gp/?gid='.$gid.'"><b>'.htmlspecialchars(stripslashes($f['name'])).'</b></a><br/>';
$q=mysql_query("SELECT * FROM `group_forum_cat` WHERE `id_gp`='$gid' ORDER BY `num` ASC");
while($r=mysql_fetch_array($q)){
$count=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id_cat`='$r[id]'"));
$n++;
if(is_integer($n/2)){
echo '<div class="msg2">';
}else{
echo '<div class="msg1">';}
echo '<a href="forum.php?cat_id='.$r['id'].'">'.htmlspecialchars(stripslashes($r['name'])).'</a> ['.$count.']<br/>';
echo '</div>';}
if($pe['status']==2 or $pe['status']==3){
echo '» <a href="forum_edit_cat.php?gid='.$gid.'">Редактировать</a>';}}}}}
break;
case 'add':
$cat_id=intval($_GET['cat_id']);
$tid=intval($_GET['tid']);
if(isset($_GET['cat_id'])){
$r1=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_cat` WHERE `id`='$cat_id'"));
$f=mysql_fetch_array(mysql_query("SELECT * FROM `group` WHERE `id`='$r1[id_gp]'"));}
if(isset($_GET['tid'])){
$a=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
$r1=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_cat` WHERE `id`='$a[id_cat]'"));
$f=mysql_fetch_array(mysql_query("SELECT * FROM `group` WHERE `id`='$r1[id_gp]'"));
$pe=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$r1[id_gp]' AND `id_user`='$aut[id]'"));}
$cou=mysql_num_rows(mysql_query("SELECT * FROM `group` WHERE `id`='$r1[id_gp]'"));
if(!$cou){
div('Ошибка');
echo 'Группа за данным номером не найдена в базе данных';
}else{
$po=mysql_num_rows(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$r1[id_gp]' AND `id_user`='$aut[id]'"));
$co=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
if($co['close']==1 and isset($_GET['tid']) and $pe['status']!=2 and $pe['status']!=3){
div('Тема закрыта');
echo 'Извините!<br/>Тема ['.htmlspecialchars(stripslashes($a['name'])).'] <b>закрыта</b><br/>Написание сообщений в нее - не возможно<br/>» <a href="forum.php?tid='.$tid.'">Вернуться в тему</a>';
}else{
if(!$po and $f['close']==1){
div('Ошибка');
echo 'Необходимо иметь минимум права пользователя группы для доступа к этому разделу!';
}else{
if(isset($_GET['to_id'])){
$to=intval($_GET['to_id']);
$u=get_user($to);
$msg=htmlspecialchars(stripslashes($u['login'])).', ';}
if(isset($_GET['post_id'])){
$post_id=intval($_GET['post_id']);
$me=mysql_fetch_array(mysql_query('SELECT * FROM `group_forum_msg` WHERE `id`='.$post_id));
$tid=$me['id_theme'];
$to=$me['id_user'];
$n1=mysql_fetch_array(mysql_query('SELECT * FROM `group_forum_theme` WHERE `id`='.$tid));
$u_n=get_user($to);
$mea=htmlspecialchars($me['msg']);
$msg='[title]'.$u_n['login'].' ['.data($me['time']).'] писал:[/title][quote]'.$mea.'[/quote]
';}
if(!isset($_POST['msg'])){
if(isset($_GET['cat_id'])){
div('Добавление темы');}
if(isset($_GET['tid'])){
div('Написать');}
if(isset($_GET['cat_id'])){
echo 'Вернуться: <a href="forum.php?gid='.$gid.'"><b>Форум группы</b></a><br/>Группа: <a href="/gp/?gid='.$gid.'"><b>'.htmlspecialchars(stripslashes($f['name'])).'</b></a><br/><br/>';}
if(isset($_GET['tid'])){
echo '<div class="msg2">';
echo 'Тема: <a href="forum.php?tid='.$tid.'"><b>'.htmlspecialchars(stripslashes($a['name'])).'</b></a><br/>Группа: <a href="/gp/?gid='.$r1['id_gp'].'"><b>'.htmlspecialchars(stripslashes($f['name'])).'</b></a>';
echo '</div>';
echo '<div class="msg1">';}
if(isset($_GET['tid'])){
echo '<form action="forum.php?act=add&tid='.$tid.'" method="POST">';}
if(isset($_GET['cat_id'])){
echo '<form action="forum.php?act=add&cat_id='.$cat_id.'" method="POST">';
echo 'Имя новой темы (50)<br/>';
echo '<input type="text" name="name" size="15"><br/>';}
echo 'Сообщение (до 5000 симв.)<br/>
<textarea name="msg" rows="5" cols="20">'.$msg.'</textarea><br/>';
if(isset($_GET['tid'])){
echo '<input type="submit" value="Отправить"></form>';}
if(isset($_GET['cat_id'])){
echo '<input type="submit" value="Создать"></form>';}
if(isset($_GET['tid'])){
echo 'Дополнительно:<br/>1. <a href="../smile/smile.php">Список смайлов</a><br/>2. <a href="../smile/bb_code.php">Список ВВ кодов</a><br/>3. <a href="../smile/translit.php">Транслит и антитранслит</a></div>';
echo '<div class="msg1">';
if($to){
echo '<a href="../info.php?id='.$to.'">Анкета</a><br/>';}
echo '<a href="forum.php?tid='.$tid.'">Вернуться в тему</a></div>';}
}else{
$name=mysql_real_escape_string($_POST['name']);
$msg=mysql_real_escape_string($_POST['msg']);
if(isset($_GET['cat_id'])){
if(empty($name)){
div('Ошибка');
echo 'Название темы не заполнено';
}else{
if(empty($msg)){
div('Ошибка');
echo 'Тело сообщения пустое';
}else{
div('Результат');
mysql_query("INSERT INTO `group_forum_theme` SET `id_cat`='$cat_id', `name`='$name', `time`='$time', `close`='0', `id_gp`='$r1[id_gp]', `num`='100'");
$id_t=mysql_insert_id();
mysql_query("INSERT INTO `group_forum_msg` SET `id_theme`='$id_t', `msg`='$msg', `id_user`='$aut[id]', `time`='$time', `id_gp`='$r1[id_gp]'");
echo 'Поздравляем!<br/>Тема '.htmlspecialchars(stripslashes($name)).' успешно создана<br/>» <a href="forum.php?tid='.$id_t.'">Перейти в тему</a>';}}}
if(isset($_GET['tid']) or isset($_GET['post_id'])){
if(empty($msg)){
div('Ошибка');
echo 'Сообщение пустое';
}else{
mysql_query("INSERT INTO `group_forum_msg` SET `id_theme`='$tid', `msg`='$msg', `id_user`='$aut[id]', `time`='$time', `id_gp`='$r1[id_gp]'");
mysql_query("UPDATE `group_forum_theme` SET `time`='$time' WHERE `id`='$tid'");
header('location: forum.php?tid='.$tid);}}}}}}
break;
case 'cat_set':
$tid=intval($_GET['tid']);
$t=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
$cou=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
if(!$cou){
div('Ошибка');
echo 'Тема за данным номером не найдена в базе данных';
}else{
$r1=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$t[id_gp]' AND `id_user`='$aut[id]'"));
if($pe['status']!=1 and $r1['status']!=2 and $r1['status']!=3){
div('Ошибка');
echo 'Внимание!<br/>Для доступа в этот раздел необходимо иметь минимум права модератора группы';
}else{
$c=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_cat` WHERE `id`='$t[id_cat]'"));
if(!isset($_POST['id_cat'])){
div('Установка категории');
echo '<form action="forum.php?act=cat_set&tid='.$tid.'" method="POST">';
echo '» <a href="forum.php?tid='.$tid.'"><b>'.htmlspecialchars(stripslashes($t['name'])).'</b></a><br/>Текущая категория: <b>'.htmlspecialchars(stripslashes($c['name'])).'</b><br/>Новая категория:<br/>';
$cat=mysql_query("SELECT * FROM `group_forum_cat` WHERE `id_gp`='$c[id_gp]'");
echo '<select name="id_cat">';
while($ct=mysql_fetch_array($cat)){
echo '<option value="'.$ct['id'].'">'.$ct['name'].'</option>';}
echo '</select><br/>';
echo '<input type="submit" value="Установить"></form>';
}else{
$id_cat=intval($_POST['id_cat']);
mysql_query("UPDATE `group_forum_theme` SET `id_cat`='$id_cat' WHERE `id`='$tid'");
header('location: forum.php?tid='.$tid);}}}
break;
case 'edit':
$tid=intval($_GET['tid']);
$t=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
$cou=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
if(!$cou){
div('Ошибка');
echo 'Тема за данным номером не найдена в базе данных';
}else{
$r1=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$t[id_gp]' AND `id_user`='$aut[id]'"));
if($pe['status']!=1 and $r1['status']!=2 and $r1['status']!=3){
div('Ошибка');
echo 'Внимание!<br/>Для доступа в этот раздел необходимо иметь минимум права модератора группы';
}else{
if(!isset($_POST['num']) or !isset($_POST['name'])){
div('Редактирование темы');
echo '<form action="forum.php?act=edit&tid='.$tid.'" method="POST">';
echo 'Введите параметры темы<br/><br/>Порядок:<br/>';
echo '<input type="text" name="num" value="'.$t['num'].'" size="4"><br/>';
echo 'Название (50)<br/>';
echo '<input type="text" name="name" value="'.$t['name'].'" size="15"><br/>';
if($t['close']==0){
echo '<input name="close" type="checkbox" value="1"> Закрытая<br/><br/>';
}else{
echo '<input name="close" type="checkbox" value="'.$t['close'].'"';
if($t['close']==1){
echo 'checked';}
echo '> Закрытая группа<br/><br/>';}
echo '<input type="submit" value="Обновить"></form>';
}else{
$name=mysql_real_escape_string($_POST['name']);
if(empty($name)){
div('Ошибка');
echo 'Название темы не заполнено';
}else{
$num=intval($_POST['num']);
$num=(isset($num) and is_numeric($num) and $num<=255)?$num:255;
$close=intval($_POST['close']);
mysql_query("UPDATE `group_forum_theme` SET `name`='$name', `num`='$num', `close`='$close' WHERE `id`='$tid'");
if($close==1){
mysql_query("UPDATE `group_forum_theme` SET `close_time`='$time', `close_id`='$aut[id]' WHERE `id`='$tid'");}
div('Результат');
echo 'Название темы успешно изменено<br/>» <a href="forum.php?tid='.$tid.'">Вернуться в тему</a>';}}}}
break;
case 'del':
$tid=intval($_GET['tid']);
$post_id=intval($_GET['post_id']);
if(isset($_GET['post_id'])){
$p_s=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id`='$post_id'"));
$u=get_user($p_s['id_user']);
$p_m=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$p_s[id_theme]'"));}
if(isset($_GET['tid'])){
$p_m=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$tid'"));
$p_t=mysql_fetch_array(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$tid' ORDER BY `id` DESC LIMIT 1"));}
$cou=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_theme` WHERE `id`='$p_m[id]'"));
if(!$cou){
div('Ошибка');
echo 'Тема за данным номером не найдена в базе данных';
}else{
$r1=mysql_fetch_array(mysql_query("SELECT * FROM `group_users` WHERE `id_gp`='$p_m[id_gp]' AND `id_user`='$aut[id]'"));
if($pe['status']!=1 and $r1['status']!=2 and $r1['status']!=3){
div('Ошибка');
echo 'Внимание!<br/>Для доступа в этот раздел необходимо иметь минимум права модератора группы';
}else{
if(!isset($_POST['yes'])){
if(!isset($_POST['no'])){
if(isset($_GET['tid'])){
div('Удаление темы');
echo '<form action="forum.php?act=del&tid='.$tid.'" method="POST">';
echo 'Внимание!<br/>Вы хотите удалить тему<br/>Тема: <b>'.htmlspecialchars(stripslashes($p_m['name'])).'</b><br/>Посл. пост: <b>['.data($p_t['time']).']</b><br/>Подтвердите удаление темы<br/>';}
if(isset($_GET['post_id'])){
div('Удаление поста');
echo '<form action="forum.php?act=del&post_id='.$post_id.'" method="POST">';
echo 'Вы уверены что хотите удалить пост?<br/>Тема: '.htmlspecialchars(stripslashes($p_m['name'])).'<br/>Пользователь <b>'.$u['login'].'</b><br/>Добавлен: ['.data($p_s['time']).']<br/>';}
echo '<input type="submit" name="no" value="Вернуться"> или <input type="submit" name="yes" value="Удалить"></form>';
}else{
header('location: forum.php?tid='.$p_m['id']);}
}else{
if(isset($_GET['tid'])){
mysql_query("DELETE FROM `group_forum_theme` WHERE `id`='$tid'");
mysql_query("DELETE FROM `group_forum_msg` WHERE `id_theme`='$tid'");
div('Результат');
echo 'Выбранная тема успешно удалена<br/>» <a href="forum.php?gid='.$p_m['id_gp'].'">Вернуться в форумы группы</a>';}
if(isset($_GET['post_id'])){
$cu=mysql_num_rows(mysql_query("SELECT * FROM `group_forum_msg` WHERE `id_theme`='$p_m[id]'"));
if($cu==1){
div('Ошибка');
echo 'Внимание!<br/>В теме менее 2-х постов<br/>Операция отменена';
}else{
mysql_query("DELETE FROM `group_forum_msg` WHERE `id`='$post_id'");
header('location: forum.php?tid='.$p_m['id']);}}}}}
break;
}
echo '</div>';
include '../foot.php';
echo '</div>';
?>