<?php
$t = "Чат";
if ($VarIO->DefS("module_chat_enable", 1) == 0){
	twig("/uchat.lm", ["block"	=>	"chat_disabled"]);
}
if ($user->auth() && !$acl->isChatRead){
	twig("/uchat.lm", ["block"	=>	"no_access"]);
} elseif (!$user->auth() && $VarIO->DefS("module_chat_guest_view", 1) == 0){
	twig("/uchat.lm", ["block"	=>	"no_access"]);
}

if ($user->auth() && $act == "del" && $id != 0 && $acl->isChatModer){
	$obj = $db->getArray("SELECT * FROM `chat` WHERE `sid` = '".$site->id."' AND `cid` = '".$id."' LIMIT 1");
	if ($obj != NULL){
		$arr = [
			"id"		=>	$obj["cid"],
			"time"		=>	$obj["timeadd"],
			"message"	=> 	($obj["sms"])
		];
		$arr["user"] = getUserInfo($obj["uid"]);
		if (isset($_POST["send"])){
			$db->Query("DELETE FROM `chat` WHERE `sid` = '".$site->id."' AND `cid` = '".$id."' LIMIT 1");
			header("Location: ?msg=deleted");
			die();
		} 
		twig("/uchat.lm", ["block"	=>	"delete_post", "post"	=> $arr]);
	}
}

if ($user->auth() && $act == "clean" && $acl->isChatModer){
	if (isset($_POST["send"])){
		$db->Query("DELETE FROM `chat` WHERE `sid` = '".$site->id."'");
		header("Location: ?msg=cleaned");
		die();
	} 
	twig("/uchat.lm", ["block"	=>	"clean"]);
}

if (isset($_POST["send"])){
	if ($user->checkSpam()){
		$core->regError("","Вы выполняете действие слишком часто. Повторите попытку через 15 секунд.",1,"AntiSpam");
	} elseif (!$user->auth()){
		$core->regError("","Необходимо войти в аккаунт.",1,"chat");
	} elseif (!isset($_POST["sms"]) || empty($_POST["sms"])){
		$core->regError("","Введите сообщение",1,"chat");
	} elseif (!$core->getIP() || !$core->getUA()){
		$core->regError("","Вы не можете оставить сообщение. Обратитесь к администратору для решения данной проблемы.", 4, "chat");
	} elseif (!$acl->isChatWrite){
		$core->regError("","У вас недостаточно прав чтобы оставить сообщение.", 5, "chat");
	} else {
		$user->spamUpdate();
		if (isset($_POST["userID"])){
			user_alert("chat", intval($_POST["userID"]), "Вам ответили в чате", 'Пользователь [userID]'.$user->getData()->id.'[/userID]" ответил вам в чате.', '/uchat.lm');
		}
		$db->Query("INSERT INTO `chat`(`sid`, `uid`, `sms`, `timeadd`) VALUES ('".$site->id."','".$user->uid."','".$core->FilterString($_POST["sms"])."','".(time())."')");
		header("Location: ?msg=sended");
		die();
	}

}
$max 		= $VarIO->DefS("items_per_page", 10);
$k_post 	= $db->Count("chat","WHERE `sid` = '".$site->id."'");
$k_page 	= $core->k_page($k_post,$max);
$page 		= $core->page($k_page);
$start 		= $max*$page-$max;
$elements	= [];
$gb = $db->Query("SELECT * FROM `chat` WHERE `sid` = '".$site->id."' ORDER BY `cid` DESC LIMIT $start, $max"); 
while ($elem = mysqli_fetch_assoc($gb)){
	$elements[] = [
		"id"		=>	$elem["cid"],
		"time"		=>	$elem["timeadd"],
		"message"	=> 	$core->drawString($elem["sms"]),
		"user"		=>	getUserInfo($elem["uid"])
	];
}

twig("/uchat.lm", ["block"	=>	"base","elems" => $elements, "pages" => [
	"elemsCount"	=> 	$k_post,
	"api"			=>	$core->twig_page_mod($k_page, $page, ["msg","userID"]),
]]);
?>