Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. <?php
  2. /*
  3.     26.01.2013 15:52
  4.     Clasul Chat
  5.     by Godina Nicolae
  6.     http://my.xbattle.ru/
  7. */
  8.  
  9. class Chat {
  10.     private $table = "chat";
  11.     private $db;
  12.  
  13.     function __construct($con = NULL) {
  14.         $this->db = $con;
  15.     }
  16.  
  17.     function __destruct() {
  18.         $this->db = NULL;
  19.     }
  20.  
  21.     private function AddMessage($id_user,$message) {
  22.         $stmt = $this->db->prepare("INSERT INTO {$this->table} (`id_user`, `data`, `message`) VALUES (:idu, :data, :msg)");
  23.         $stmt->execute(array('idu'=>$id_user,'data'=>date("Y-m-d H:i:s"),'msg'=>$message));
  24.         $stmt = NULL;
  25.     }
  26.  
  27.     public function SendMessage($id_user,$message) {
  28.         if (strlen($message) > 1) {
  29.             $this->AddMessage($id_user,htmlspecialchars($message));
  30.         }
  31.     }
  32.  
  33.     public function SelectMessages($limit) {
  34.         $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}");
  35.         $stmt->execute();
  36.         return $stmt->fetchAll(PDO::FETCH_ASSOC);
  37.     }
  38.  
  39.     public function Clear() {
  40.         $stmt = $this->db->prepare("TRUNCATE TABLE {$this->table}");
  41.         $stmt->execute();
  42.         $stmt = NULL;
  43.     }
  44.  
  45.     public function SelectOnline($timeout) {
  46.         $stmt = $this->db->prepare("SELECT * FROM `users` WHERE `chat_activ_user` <= :datai AND `chat_activ_user` >= :dataf ORDER BY `id_user` DESC");
  47.         $stmt->execute(array(":datai"=>date("Y-m-d H:i:s"),":dataf"=>date("Y-m-d H:i:s", time()-$timeout)));
  48.         return $stmt->fetchAll(PDO::FETCH_ASSOC);
  49.     }
  50.  
  51.     public function SetOnline($id_user) {
  52.         $upd_activ = $this->db->prepare("UPDATE `users` SET chat_activ_user = :data WHERE id_user = :ident");
  53.         $upd_activ->execute(array(":ident"=>$id_user,":data"=>date("Y-m-d H:i:s")));
  54.         $upd_activ = NULL;
  55.     }
  56. }
  57.  
  58. ?>