0) ? 10 : 30;
if ($datauser['lastpost'] > ($realtime - $old)) {
require_once ("../incfiles/head.php");
echo '
';
require_once ("../incfiles/end.php");
exit;
}
//вспомогательная функция для обработки ссылок (AlkatraZ, FlySelf)
function forum_link($m) {
global $home;
if (!isset ($m[3])) {
return '[url=' . $m[1] . ']' . $m[2] . '[/url]';
}
else {
$p = parse_url($m[3]);
if ('http://' . $p['host'] . $p['path'] . '?id=' == $home . '/forum/index.php?id=') {
$thid = abs(intval(preg_replace('/(.*?)id=/si', '', $m[3])));
$req = mysql_query("SELECT `text` FROM `forum` WHERE `id`= '$thid' AND `type` = 't' AND `close` != '1'");
if (mysql_num_rows($req) > 0) {
$res = mysql_fetch_array($req);
$name = strtr($res['text'], array('"' => '', '&' => '', '<' => '', '>' => '', ''' => '', '[' => '', ']' => ''));
if (mb_strlen($name) > 40)
$name = mb_substr($name, 0, 40) . '...';
return '[url=' . $m[3] . ']' . $name . '[/url]';
}
else {
return $m[3];
}
}
else
return $m[3];
}
}
$headmod = 'forum,' . $id . ',1';
$agn1 = strtok($agn, ' ');
$type = mysql_query("SELECT * FROM `forum` WHERE `id` = '$id'");
$type1 = mysql_fetch_array($type);
$tip = $type1['type'];
switch ($tip) {
case "t" :
////////////////////////////////////////////////////////////
// Добавление простого сообщения //
////////////////////////////////////////////////////////////
// Проверка, закрыта ли тема
if (($type1['edit'] == 1 || $type1['close'] == 1) && $rights < 7) {
require_once ('../incfiles/head.php');
echo '';
require_once ('../incfiles/end.php');
exit;
}
if (isset ($_POST['submit']) && !empty ($_POST['msg'])) {
$msg = trim($_POST['msg']);
if ($_POST['msgtrans'] == 1) {
$msg = trans($msg);
}
// Проверяем, не повторяется ли сообщение?
$req = mysql_query("SELECT * FROM `forum` WHERE `user_id` = '$user_id' AND `type` = 'm' ORDER BY `time` DESC");
if (mysql_num_rows($req) > 0) {
$res = mysql_fetch_array($req);
if ($msg == $res['text']) {
require_once ('../incfiles/head.php');
echo '';
require_once ('../incfiles/end.php');
exit;
}
}
// Удаляем фильтр, если он был
if (isset ($_SESSION['fsort_id']) && $_SESSION['fsort_id'] == $id) {
unset ($_SESSION['fsort_id']);
unset ($_SESSION['fsort_users']);
}
//Обрабатываем ссылки
$msg = preg_replace_callback('~\\[url=(http://.+?)\\](.+?)\\[/url\\]|(http://(www.)?[0-9a-zA-Z\.-]+\.[0-9a-zA-Z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%-:#]*)~', 'forum_link', $msg);
// Добавляем сообщение в базу
mysql_query("INSERT INTO `forum` SET
`refid` = '$id',
`type` = 'm' ,
`time` = '$realtime',
`user_id` = '$user_id',
`from` = '$login',
`ip` = '$ipp',
`soft` = '" . mysql_real_escape_string($agn1) .
"',
`text` = '" . mysql_real_escape_string($msg) . "'");
$fadd = mysql_insert_id();
// Обновляем время топика
mysql_query("UPDATE `forum` SET `time` = '$realtime' WHERE `id` = '$id'");
// Обновляем статистику юзера
mysql_query("UPDATE `users`SET `balans`=balans+10,`postforum`='" . ($datauser['postforum'] + 1) . "', `lastpost` ='$realtime' WHERE `id` = '$user_id'");
// Вычисляем, на какую страницу попадает добавляемый пост
$page = $set_forum['upfp'] ? 1 : ceil(mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type` = 'm' AND `refid` = '$id'" . ($rights >= 7 ? '' : " AND `close` != '1'")), 0) / $kmess);
if ($_POST['addfiles'] == 1)
header("Location: index.php?id=$fadd&act=addfile");
else
header("Location: index.php?id=$id&page=$page");
}
else {
require_once ("../incfiles/head.php");
if ($datauser['postforum'] == 0) {
if (!isset ($_GET['yes'])) {
include ("../pages/forum.txt");
echo "Согласен|Не согласен
";
require_once ("../incfiles/end.php");
exit;
}
}
echo 'Тема: ' . $type1['text'] . '
';
if (isset ($_SESSION['fsort_id']) && $_SESSION['fsort_id'] == $id)
echo '';
echo '';
}
echo '';
echo 'Назад
';
break;
case "m" :
////////////////////////////////////////////////////////////
// Добавление сообщения с цитированием поста //
////////////////////////////////////////////////////////////
$th = $type1['refid'];
$th2 = mysql_query("SELECT * FROM `forum` WHERE `id` = '$th'");
$th1 = mysql_fetch_array($th2);
if (($th1['edit'] == 1 || $th1['close'] == 1) && $rights < 7) {
require_once ('../incfiles/head.php');
echo '';
require_once ('../incfiles/end.php');
exit;
}
$vrp = $type1['time'] + $set_user['sdvig'] * 3600;
$vr = date("d.m.Y / H:i", $vrp);
if (isset ($_POST['submit'])) {
if (empty ($_POST['msg'])) {
require_once ("../incfiles/head.php");
echo "Вы не ввели сообщение!
Повторить
";
require_once ("../incfiles/end.php");
exit;
}
$msg = trim($_POST['msg']);
if ($_POST['msgtrans'] == 1) {
$msg = trans($msg);
}
$to = $type1['from'];
if (!empty ($_POST['citata'])) {
// Если была цитата, форматируем ее и обрабатываем
$citata = trim($_POST['citata']);
$citata = preg_replace('#\[c\](.*?)\[/c\]#si', '', $citata);
$citata = mb_substr($citata, 0, 200);
$tp = date("d.m.Y/H:i", $type1['time']);
$msg = '[c]' . $to . ' (' . $tp . ")\r\n" . $citata . '[/c]' . $msg;
}
elseif (isset ($_POST['txt'])) {
// Если был ответ, обрабатываем реплику
$txt = intval($_POST['txt']);
switch ($txt) {
case 2 :
$repl = $type1['from'] . ', с удовольствием тебе отвечу, ';
break;
case 3 :
$repl = $type1['from'] . ', на твой пост ([url=' . $home . '/forum/index.php?act=post&id=' . $type1['id'] . ']' . $vr . '[/url]) отвечу, ';
break;
case 4 :
$repl = $type1['from'] . ', канай отсюда редиска! Маргалы выкалю, рога поотшибаю! ';
break;
default :
$repl = $type1['from'] . ', ';
}
$msg = $repl . ' ' . $msg;
}
//Обрабатываем ссылки
$msg = preg_replace_callback('~\\[url=(http://.+?)\\](.+?)\\[/url\\]|(http://(www.)?[0-9a-zA-Z\.-]+\.[0-9a-zA-Z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%-:#]*)~', 'forum_link', $msg);
// Проверяем, не повторяется ли сообщение?
$req = mysql_query("SELECT * FROM `forum` WHERE `user_id` = '$user_id' AND `type` = 'm' ORDER BY `time` DESC");
if (mysql_num_rows($req) > 0) {
$res = mysql_fetch_array($req);
if ($msg == $res['text']) {
require_once ('../incfiles/head.php');
echo '';
require_once ('../incfiles/end.php');
exit;
}
}
// Удаляем фильтр, если он был
if (isset ($_SESSION['fsort_id']) && $_SESSION['fsort_id'] == $th) {
unset ($_SESSION['fsort_id']);
unset ($_SESSION['fsort_users']);
}
// Добавляем сообщение в базу
mysql_query("INSERT INTO `forum` SET
`refid` = '$th',
`type` = 'm',
`time` = '$realtime',
`user_id` = '$user_id',
`from` = '$login',
`ip` = '$ipp',
`soft` = '" . mysql_real_escape_string($agn1) .
"',
`text` = '" . mysql_real_escape_string($msg) . "'");
$fadd = mysql_insert_id();
// Обновляем время топика
mysql_query("UPDATE `forum` SET `time` = '$realtime' WHERE `id` = '$th'");
// Обновляем статистику юзера
mysql_query("UPDATE `users`SET `balans`=balans+10,`postforum`='" . ($datauser['postforum'] + 1) . "', `lastpost` ='$realtime' WHERE `id` = '$user_id'");
// Вычисляем, на какую страницу попадает добавляемый пост
$page = $set_forum['upfp'] ? 1 : ceil(mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `type` = 'm' AND `refid` = '$th'" . ($rights >= 7 ? '' : " AND `close` != '1'")), 0) / $kmess);
$addfiles = intval($_POST['addfiles']);
if ($addfiles == 1) {
header("Location: index.php?id=$fadd&act=addfile");
}
else {
header("Location: index.php?id=$th&page=$page");
}
}
else {
require_once ("../incfiles/head.php");
$qt = " $type1[text]";
if (($datauser['postforum'] == "" || $datauser['postforum'] == 0)) {
if (!isset ($_GET['yes'])) {
include ("../pages/forum.txt");
echo "Согласен|Не согласен
";
require_once ("../incfiles/end.php");
exit;
}
}
echo 'Тема: ' . $th1['text'] . '
';
if (isset ($_SESSION['fsort_id']) && $_SESSION['fsort_id'] == $th)
echo '';
$qt = str_replace("
", "\r\n", $qt);
$qt = trim(preg_replace('#\[c\](.*?)\[/c\]#si', '', $qt));
$qt = checkout($qt, 0, 2);
echo '';
}
echo '';
echo 'Назад
';
break;
default :
require_once ("../incfiles/head.php");
echo "Ошибка:тема удалена или не существует!
В форум
";
break;
}
?>