<?
require('ini.php');
$link=connect();
$user=login('nick, loc, forum_tlim, forum_admin, forum_moder, forum_mlim', 'forums', true);
if(isset($_COOKIE['forums_login'])) $ban_cookie = true;
else $ban_cookie = false;
if($user) $sess = 'sid='.$sid.'&';
else $sess = false;
@$mod=$_GET['mod'];
@$fid = intval($_GET['fid']);
@$s = intval($_GET['s']);
$select = mysql_query("SELECT `name` FROM `wip_forum_forums` WHERE `id`='".$fid."';");
if(mysql_affected_rows()<1){
head('Ошибка!', 15, 'forums.php?'.$sess);
echo '<small><b>Неверный форум!</b></small>';
foot();
exit();
}
$forum = mysql_result($select, 0);
if($user) mysql_query("UPDATE `wip_users` SET `loc`='forum_".$fid."', `forum_online`='".time()."' WHERE `id`='".$user['id']."';");
# Анонимный ID
if(!$user and $mod == 'new_topic_make'){
$an_id = an_id();
}
###
switch($mod){
# Список тем на форуме
default:
head($forum);
echo '<small>';
echo '<a href="forums.php?'.$sess.'">Форумы</a> | <b>'.$forum.'</b>';
if(!$ban_cookie) echo ' | <a href="forum_topics.php?'.$sess.'fid='.$fid.'&mod=new_topic&r='.rand(100, 500).'">Новая тема</a>';
$onl = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `wip_users` WHERE `loc`='forum_".$fid."' AND `forum_online`>'".(time()-300)."';"), 0);
if($onl > 0) echo '<br/><a href="forum_online.php?'.$sess.'fid='.$fid.'">Кто на форуме</a> ['.$onl.']';
echo '<br/>---<br/>';
# Постраничный вывод
$tlim = ($user) ? $user['forum_tlim'] : 10;
if (!$s or $s<=0) $s=1;
$all = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `wip_forum_topics` WHERE `fid`='".$fid."';"), 0);
$pgs=ceil($all / $tlim);
if($s > $pgs) $s = $pgs;
$n = ($s-1) * $tlim;
###
$select = mysql_query("SELECT `t`.`id` AS `tid`, `u`.`nick`, `t`.`name`, `t`.`last`, `t`.`time`, `t`.`close`, `t`.`move` FROM `wip_forum_topics` AS `t`, `wip_users` AS `u` WHERE `t`.`uid`=`u`.`id` AND `t`.`fid`='".$fid."' ORDER BY `last` DESC LIMIT ".$n.", ".$tlim.";");
if(mysql_affected_rows()<1){
echo 'В этом форуме нет тем<br/>';
}
else {
$today = date('d.m.Y');
while($res = mysql_fetch_assoc($select)){
$q = mysql_query("SELECT COUNT(`id`) FROM `wip_forum_messages` WHERE `tid`='".$res['tid']."';");
$msgs = mysql_result($q, 0);
$mlim = ($user) ? $user['forum_mlim'] : 10;
$pgs=ceil($msgs / $mlim);
$last = mysql_fetch_assoc(mysql_query("SELECT `u`.`nick`, `m`.`time` FROM `wip_forum_messages` AS `m`, `wip_users` AS `u` WHERE `u`.`id`=`m`.`uid` AND `tid`='".$res['tid']."' ORDER BY `m`.`id` DESC LIMIT 1;"));
$last_date=false;
$last_date=(date('d.m.Y', $last['time']) == $today)?'[ceгoдня / ':'['.date('d.m', $last['time']).' / ';
$last_date.=date('H:i', $last['time']).']';
$date = (date('d.m.Y', $res['time']) == $today) ? 'сегодня' : date('d.m.Y', $res['time']);
$date .= ' / '.date('H:i', $res['time']);
if($user['forum_admin']) echo '<a href="forum_admin.php?'.$sess.'mod=topic&tid='.$res['tid'].'">[+]</a> ';
if($user['forum_moder']) echo '<a href="forum_moder.php?'.$sess.'mod=topic&tid='.$res['tid'].'">[+]</a> ';
if($pgs>1) echo '<a href="forum_messages.php?'.$sess.'tid='.$res['tid'].'&s='.$pgs.'">-></a> ';
echo '<a href="forum_messages.php?'.$sess.'tid='.$res['tid'].'">'.$res['name'].'</a> ['.$msgs.']';
if($res['last']=='lock') echo ' <b>[!]</b>';
echo '<br/>';
if($res['close']==1) echo '<b>Тема закрыта</b><br/>';
echo $res['nick'].', '.$date.'<br/>';
echo 'Посл: '.$last['nick'].' '.$last_date.'<br/>';
echo '---<br/>';
}
# Список страниц
if ($all > $tlim){
if ($pgs>3 and $s>2) echo '<a href="forum_topics.php?'.$sess.'fid='.$fid.'&s=1">1</a>...';
$beg=$s-1; $end=$s+1;
if ($end>$pgs+1){
$end=$pgs; $beg=$beg-2;
}
elseif ($end>$pgs){
$end=$pgs; $beg=$beg-1;
}
for($m=$beg;$m<=$end;$m++){
if ($m<=0) $end++;
else{
if($m==$s) echo '<b>'.$m.'</b>';
else echo '<a href="forum_topics.php?'.$sess.'fid='.$fid.'&s='.$m.'">'.$m.'</a>';
if($m!=$end) echo '-';
}
if ($end>$pgs) $end=$pgs;
}
if ($pgs>3 and $s<=($pgs-2)) echo '...<a href="forum_topics.php?'.$sess.'fid='.$fid.'&s='.$pgs.'">'.$pgs.'</a>';
echo '<br/>---<br/>';
}
echo '<a href="forums.php?'.$sess.'">Форумы</a> | <b>'.$forum.'</b>';
if(!$ban_cookie) echo ' | <a href="forum_topics.php?'.$sess.'fid='.$fid.'&mod=new_topic&r='.rand(100, 500).'">Новая тема</a>';
echo '<br/>';
}
echo '</small>';
break;
# Новая тема: ввод данных
case 'new_topic':
@$r = intval($_GET['r']);
head('Новая тема');
if($ban_cookie){
echo '<small>Вы не можете создавать темы!<br/><anchor>Назад<prev/></anchor><br/></small>';
break;
}
echo '<small><a href="forum_topics.php?'.$sess.'fid='.$fid.'">'.$forum.'</a> | <b>Новая тема</b><br/>';
echo '---<br/>';
echo 'Название темы:</small> <input name="name'.$r.'" type="text" maxlength="50"/><br/>';
echo '<small>Сообщение:</small> <input name="msg'.$r.'" type="text" maxlength="1000"/><br/>';
echo '<small><anchor>Создать<go href="forum_topics.php?'.$sess.'mod=new_topic_make&fid='.$fid.'" method="post">';
echo '<postfield name="name" value="$(name'.$r.')"/>';
echo '<postfield name="msg" value="$(msg'.$r.')"/>';
echo '</go></anchor></small><br/>';
break;
# Новая тема: запись данных
case 'new_topic_make':
head('Новая тема');
if($ban_cookie){
echo '<small>Вы не можете создавать темы!<br/><anchor>Назад<prev/></anchor><br/></small>';
break;
}
@$name = mb_substr( htmlspecialchars(trim($_POST['name']), ENT_QUOTES), 0, 50, 'UTF-8');
@$msg = mb_substr( htmlspecialchars(trim($_POST['msg']), ENT_QUOTES), 0, 1000, 'UTF-8');
if(!$name or !$msg){
echo '<small>Введите название и сообщение темы!<br/><anchor>Назад<prev/></anchor></small><br/>';
break;
}
# Добавление смайлов
$msg=strtr($msg,array(':)'=>'<smile.gif>', ';)'=>'<wink.gif>', 'B)'=>'<cool.gif>', ':(('=>'<aaa.gif>', ':!'=>'<be.gif>', ':S'=>'<blin.gif>', '@='=>'<bum.gif>', ':X'=>'<close.gif>', ';('=>'<cry.gif>', ']:)'=>'<devil.gif>', '@-/-'=>'<flow.gif>', ':]'=>'<gaga.gif>', ':D'=>'<green.gif>', '=)'=>'<ha.gif>', '(:'=>'<lol.gif>', '=/'=>'<hm.gif>', '.kiss.'=>'<kiss.gif>', ':o)'=>'<kloun.gif>', '.lips.'=>'<lips.gif>', '.love.'=>'<love.gif>', '8o'=>'<mmm.gif>', '[:)'=>'<music.gif>', '=]'=>'<napolu.gif>', '.ninja.'=>'<ninja.gif>', '.down.'=>'<no.gif>', '%)'=>'<ogo.gif>', '.pirat.'=>'<pirate.gif>', '.beer.'=>'<pivo.gif>', ':['=>'<red.gif>', ':('=>'<sad.gif>', '.woot.'=>'<shok.gif>', '.zz.'=>'<spit.gif>', '=p'=>'<tong.gif>', ':T'=>'<svist.gif>', '.uuu.'=>'<uuu.gif>', '.wow.'=>'<view.gif>', ':?'=>'<vopros.gif>', '.up.'=>'<yes.gif>', ':@'=>'<angry2.gif>', ':O'=>'<angry.gif>'));
$arr=explode('<',$msg);
$msg=false;
foreach($arr as $k=>$val){
if($k!=0 and $k<=3) $msg.='<img src="smiles/'.$val;
else $msg.=$val;
}
$msg=preg_replace("/src\=\"smiles\/([a-z]+)\.gif\>/","src=\"smiles/\\1.gif\" alt=\"\\1\"/>",$msg);
$msg=eregi_replace("([a-z]+)\.gif\>","",$msg);
####
if($user) $uid = $user['id'];
else $uid = 3; # Публичный ID анонима
mysql_query("SELECT `id` FROM `wip_forum_topics` WHERE `name`='".$name."' AND `fid`='".$fid."' AND `uid`='".$uid."';");
if(mysql_affected_rows()>0){
echo '<small>Вы уже создавали тему с таким названием!<br/><anchor>Назад<prev/></anchor></small><br/>';
break;
}
$c_last = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `wip_forum_topics` WHERE `time`>'".(time()-60)."' AND `uid`='".$uid."';"), 0);
if($c_last >= 2){
echo '<small>Вы не можете создавать темы так часто, подождите 1 минуту и обновите страницу<br/><anchor>Назад<prev/></anchor></small><br/>';
break;
}
if(!$user) $add_an_id = ", `an_id`='".$an_id."'";
else $add_an_id = false;
mysql_query("INSERT INTO `wip_forum_topics` SET `fid`='".$fid."', `uid`='".$uid."', `time`='".time()."', name='".$name."', `last`='".time()."' ".$add_an_id.";");
$tid = mysql_insert_id();
if(!$tid){
echo '<small>Ошибка создания темы!<br/><anchor>Назад<prev/></anchor></small><br/>';
break;
}
$ins = mysql_query("INSERT INTO `wip_forum_messages` SET `fid`='".$fid."', `tid`='".$tid."', `uid`='".$uid."', `time`='".time()."', `msg`='".$msg."' ".$add_an_id.";");
if($ins){
echo '<small>Новая тема успешно создана!<br/>';
echo '<a href="forum_messages.php?'.$sess.'tid='.$tid.'">В тему</a><br/>';
echo '<a href="forum_topics.php?'.$sess.'fid='.$fid.'">'.$forum.'</a>';
echo '</small><br/>';
}
else echo '<small>Ошибка при создании темы!<br/><anchor>Назад<prev/></anchor></small><br/>';
break;
}
echo '<small>';
if($mod) echo '---<br/>';
if($mod == 'new_topic') echo '<a href="forums.php?'.$sess.'">Форумы</a><br/>';
if($user) echo '<a href="enter.php?'.$sess.'">Главное меню</a>';
echo '</small>';
foot();
mysql_close($link);
?>