<?php
if ($db->Count("forum_topics","WHERE `sid` = '".$site->id."' AND `tid` = '".$id."'") == 0){
	$t = "Форум";
	include_once 'core/head.php';
	echo '<div class="error">Извините, но данная тема не существует.</div>';
	echo ($back?linkGen($back,"Вернуться назад",["data-id"=>"link-back"]):null);
	echo linkGen("/forum.lm","Вернуться на главную форума",["data-id"=>"link-forum"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();
}
$theme = $db->getObject("SELECT * FROM `forum_topics` WHERE `sid` = '".$site->id."' AND `tid` = '".$id."'");
$cat = $db->getObject("SELECT * FROM `forum_cat` WHERE `sid` = '".$site->id."' AND `cid` = '".$theme->cid."'");
if ($user->auth() && $site->forum_move_a == 1 && $user->checkAccess(4)){
	$_move = 1;
} elseif ($user->auth() && $site->forum_move_m == 1 && $user->checkAccess(3)){
	$_move = 1;
} elseif ($user->auth() && $site->forum_move_u == 1 && $theme->uid == $user->uid){
	$_move = 1;
} else {
	$_move = 0;
}
if ($user->auth() && $site->forum_del_a == 1 && $user->checkAccess(4)){
	$_del = 1;
} elseif ($user->auth() && $site->forum_del_m == 1 && $user->checkAccess(3)){
	$_del = 1;
} elseif ($user->auth() && $site->forum_del_u == 1 && $theme->uid == $user->uid){
	$_del = 1;
} else {
	$_del = 0;
}
if ($user->auth() && $site->forum_close_a == 1 && $user->checkAccess(4)){
	$_close = 1;
} elseif ($user->auth() && $site->forum_close_m == 1 && $user->checkAccess(3)){
	$_close = 1;
} elseif ($user->auth() && $site->forum_close_u == 1 && $theme->uid == $user->uid){
	$_close = 1;
} else {
	$_close = 0;
}
if ($theme->closed == 1 && $user->auth() && $site->forum_close_a == 1 && $user->checkAccess(4)){
	$_open = 1;
} elseif ($theme->closed == 1 && $user->auth() && $site->forum_close_m == 1 && $user->checkAccess(3)){
	$_open = 1;
} elseif ($theme->closed == 1 && $user->auth() && $site->forum_close_u == 1 && $theme->uid == $user->uid && $theme->close_who == $user->uid){
	$_open = 1;
} else {
	$_open = 0;
}


$max = 10;
$ud = [];
$k_post = $db->Count("forum_message","WHERE `sid` = '".$site->id."' AND `tid` = '".$id."'");
$k_page = $core->k_page($k_post,$max);
$page = $core->page($k_page);
$start = $max*$page-$max;
$data = $db->Query("SELECT * FROM `forum_message` WHERE `sid` = '".$site->id."' AND `tid` = '".$id."' ORDER BY `mid` ASC LIMIT $start, $max"); 
while ($d = mysqli_fetch_assoc($data)){
	$u = $user->fullInfoID($d["uid"]);
	$ud[$d["uid"]] = $u;
	//echo '<div class="text"><div class="line"><span class="nick">'.$user->linkUser($u["id"],"/forum.lm").' '.($u["id"]==$theme->uid?'<span class="author">[Автор]</span>':'<a href="?reply='.$u["id"].'&id='.$id.'&act=read">[ответить]</a>').'</span> <span class="count">'.$core->RealTime($d["timeadd"]).'</span></div><div class="sms">'.$core->drawString($d["sms"]).'</div></div>';
}

if (isset($_POST["post"]) && $theme->closed == 0 && $user->auth()){
	if ($user->checkSpam()){
		$core->regError("Вы выполняете действие слишком часто.<br>Повторите попытку через 15 секунд.","Вы выполняете действие слишком часто.<br>Повторите попытку через 15 секунд.",1,"AntiSpam");
	} elseif (!isset($_POST["sms"]) || empty($_POST["sms"])){
		$core->regError("Введите сообщение","Введите сообщение",2,"Forum");
	} elseif (strlen(trim($_POST['sms'])) < 4) {
		$core->regError("Слишком короткое сообщение темы","Слишком короткое сообщение темы (от 4 символов)",4,"Forum");
	} else {
		if ($theme->uid != $user->uid){
			$core->addAlert($theme->uid,"Пользователь ".$user->getData()->login." оставил сообщение в вашей теме!",$site->id,"/forum.lm?id=".$id."&act=read","Перейти к теме на форуме");
		}
		$reply = isset($_GET["reply"]) && !empty($_GET["reply"]) && is_numeric($_GET["reply"])?intval($_GET["reply"]):0;
		if (isset($ud[$reply]) && $reply != $theme->uid && $user->uid != $reply){
			$core->addAlert($reply,"Пользователь ".$user->getData()->login." ответил на ваше сообщение теме!",$site->id,"/forum.lm?id=".$id."&act=read","Перейти к теме на форуме");
		}
		$db->Query("INSERT INTO `forum_message`(`sid`, `tid`, `cid`, `uid`, `sms`, `timeadd`) VALUES ('".$site->id."','".$theme->tid."','".$theme->cid."','".$user->uid."','".$core->FilterString($_POST["sms"])."','".$time."')");
		$db->Query("UPDATE `forum_topics` SET `lastUpdate` = '".$time."' WHERE `tid` = '".$theme->tid."' AND `sid` = '".$site->id."'");
		unset($_POST["sms"]);
		header("Location: /forum.lm?act=read&page=end&id=".$id);
		die();
	}
}
$t = "Форум - ".$theme->name;
include_once 'core/head.php';
echo '<div class="title">'.$theme->name.'</div>';
if ($core->isBooleanError()){
	foreach ($core->showError() as $csE){
		echo '<div class="error">Произошла ошибка при обработке операции<br><b>КОД: '.$csE["code"].'</b><br>Подробнее: '.$csE["utxt"].'</div>';
	}
}
echo '<div class="text f_fastlink"><a href="/forum.lm" class="f_flink">Форум</a> <span class="f_rz">></span> <a href="/forum.lm?id='.$cat->cid.'" class="f_flink">'.$cat->name.'</a> <span class="f_rz">></span> <span class="f_current">'.$theme->name.'</span></div>';
if ($theme->closed == 1){
	$u = $user->fullInfoID($theme->close_who);
	echo '<div class="text f_closed">Тема закрыта!<br>Причина: '.$core->drawString($theme->close_txt).'<br>Время: '.$core->RealTime($theme->close_time).'<br>Кто закрыл: '.$user->linkUser($u["id"],"/forum.lm").'</div>';
}
$data = $db->Query("SELECT * FROM `forum_message` WHERE `sid` = '".$site->id."' AND `tid` = '".$id."' ORDER BY `mid` ASC LIMIT $start, $max"); 
while ($d = mysqli_fetch_assoc($data)){
	$u = $user->fullInfoID($d["uid"]);
	//$ud[$d["uid"]] = $u;
	echo '<div class="text"
	data-uid="'.$d["uid"].'"
	data-login="'.$u["login"].'"
	data-author="'.($u["id"]==$theme->uid?1:0).'"
	data-reply="'.($theme->closed != 1 && $user->uid != $u["id"]?1:0).'"
	data-time="'.($d["timeadd"]).'"
	data-msg="'.htmlentities($core->drawString($d["sms"])).'"
	><div class="line"><span class="nick">'.$user->linkUser($u["id"],"/forum.lm").' '.($u["id"]==$theme->uid?'<span class="author">[Автор]</span>':null).' '.($theme->closed != 1 && $user->uid != $u["id"]?'<a href="?reply='.$u["id"].'&id='.$id.'&act=read">[ответить]</a>':'').'</span> <span class="count">'.$core->RealTime($d["timeadd"]).'</span></div><div class="sms">'.$core->drawString($d["sms"]).'</div></div>';
}
if ($theme->closed == 0 && $user->auth()){
	$reply = isset($_GET["reply"]) && !empty($_GET["reply"]) && is_numeric($_GET["reply"])?intval($_GET["reply"]):0;
	$msg = isset($ud[$reply])?$ud[$reply]["login"].", ":"";
echo '<form method="POST">
Сообщение: <br>
<textarea name="sms"  id="input">'.(isset($_POST["sms"])?$core->FilterString($_POST["sms"]):$msg).'</textarea><br>
<input type="submit" name="post" value="Оставить сообщение">
</form>';
} elseif ($theme->closed == 0 && !$user->auth()) {
	echo '<div class="warning">Для того чтобы оставить сообщение, необходимо пройти авторизацию.</div>';
}
if($k_page>1) echo $core->str('?id='.$id."&act=read&",$k_page,$page);

echo ($_close && $theme->closed == 0?linkGen('/forum.lm?id='.$theme->tid.'&act=close',"Закрыть тему",["data-id"=>"link-forum-close"]):null);
echo ($_open?linkGen('/forum.lm?id='.$theme->tid.'&act=open',"Открыть тему",["data-id"=>"link-forum-open"]):null);
echo ($_move?linkGen('/forum.lm?id='.$theme->tid.'&act=move',"Переместить тему",["data-id"=>"link-forum-move"]):null);
echo ($_del?linkGen('/forum.lm?id='.$theme->tid.'&act=del',"Удалить тему",["data-id"=>"link-forum-del"]):null);

echo linkGen('/forum.lm?id='.$cat->cid.'',"Вернуться назад",["data-id"=>"link-back"]);
echo linkGen("/forum.lm","Вернуться на главную форума",["data-id"=>"link-forum"]);
echo linkGen("/","На главную",["data-id"=>"link-home"]);

include_once 'core/foot.php';
?>