<?php
/*
26.01.2013 15:52
Clasul Chat
by Godina Nicolae
http://my.xbattle.ru/
*/
class Chat {
private $table = "chat";
private $db;
function __construct($con = NULL) {
$this->db = $con;
}
function __destruct() {
$this->db = NULL;
}
private function AddMessage($id_user,$message) {
$stmt = $this->db->prepare("INSERT INTO {$this->table} (`id_user`, `data`, `message`) VALUES (:idu, :data, :msg)");
$stmt->execute(array('idu'=>$id_user,'data'=>date("Y-m-d H:i:s"),'msg'=>$message));
$stmt = NULL;
}
public function SendMessage($id_user,$message) {
if (strlen($message) > 1) {
$this->AddMessage($id_user,htmlspecialchars($message));
}
}
public function SelectMessages($limit) {
$stmt = $this->db->prepare("SELECT `{$this->table}`.`message` , `{$this->table}`.`data`, `users`.`nume_user` FROM `{$this->table}` JOIN `users` ON `users`.`id_user` = `{$this->table}`.`id_user` ORDER BY `{$this->table}`.`data` DESC LIMIT 0, {$limit}");
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function Clear() {
$stmt = $this->db->prepare("TRUNCATE TABLE {$this->table}");
$stmt->execute();
$stmt = NULL;
}
public function SelectOnline($timeout) {
$stmt = $this->db->prepare("SELECT * FROM `users` WHERE `chat_activ_user` <= :datai AND `chat_activ_user` >= :dataf ORDER BY `id_user` DESC");
$stmt->execute(array(":datai"=>date("Y-m-d H:i:s"),":dataf"=>date("Y-m-d H:i:s", time()-$timeout)));
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
public function SetOnline($id_user) {
$upd_activ = $this->db->prepare("UPDATE `users` SET chat_activ_user = :data WHERE id_user = :ident");
$upd_activ->execute(array(":ident"=>$id_user,":data"=>date("Y-m-d H:i:s")));
$upd_activ = NULL;
}
}
?>