<?php
class Chat{
static private $instance = NULL;
private $db;
public $count;
public function __construct(){
$this->db = DB::a()->d;
$countChat= json_decode(User::a()->user['counts'],true);
if($countChat['chat'] < User::a()->user['count_chat']){
$this->count = '<span class="minor">(*)</span>';
}
}
static function a(){
if(self::$instance==NULL)self::$instance=new Chat();
return self::$instance;
}
public function getChat($page){
if(!$page) $page = 1;
if($page>5)$this->loc();
$page = abs(intval($page));
$start = $page * MAX_MESS_CHAT - MAX_MESS_CHAT;
$result = $this->db->query("SELECT COUNT(*) FROM `chat`")->fetchColumn();
if($result>0){
$query = $this->db->query("SELECT `chat`.*, ".User::a()->join."
FROM `chat` JOIN `users`
ON `users`.`id` = `chat`.`user`
ORDER BY `chat`.`id` DESC LIMIT ".$start.",".MAX_MESS_CHAT)->fetchAll();
return array('count' => $result, 'chat' => $query);
}
return array('count' => 0, 'chat' => false);
}
public function add($text){
if(User::a()->user['chatDost']==0)Ach::a()->add('countChat',1);
$ins = $this->db->prepare("INSERT INTO `chat` (`user`,`text`,`time`) VALUES ('".User::a()->user['id']."', :text,'".time()."')");
$ins->bindParam(':text', $text ,PDO::PARAM_STR);
$ins->execute();
return $true;
}
public function delete($id){
$id = abs(intval($id));
$mess = $this->db->query("SELECT * FROM `chat` WHERE `id` = '".$id."' LIMIT 1")->fetch();
if($mess === false)return false;
$this->db->query("DELETE FROM `chat` WHERE `id` = '".$id."' LIMIT 1");
return $true;
}
public function truncate(){
$this->db->query("TRUNCATE TABLE `chat`");
return true;
}
public function loc($location=false){
if($location==false)header("Location:/Chat/");
else header("Location:".$location);
die();
}
}