Файл: sys/classes/invisible.php
Строк: 60
<?php
class invisible
{
public static $_users;
public static function factory($user_id)
{
return isset(invisible::$_users[$user_id]) ? invisible::$_users[$user_id] : new self($user_id);
}
protected $_columns;
public function __construct($userId)
{
$q = mysql_query("SELECT * FROM `invisibles` WHERE `id_user`={$userId} ");
if(mysql_num_rows($q))
{
$this->_columns = mysql_fetch_assoc($q);
}
else
{
$this->_columns = array('id_user'=>$userId, 'time_active'=>0, 'time_end'=>0, 'packet'=>null);
}
}
public function isActive()
{
return ($this->getTimeEnd() > time());
}
public function getUserId()
{
return $this->_columns['id_user'];
}
public function getTimeEnd()
{
return $this->_columns['time_end'];
}
public function getTimeActive()
{
return $this->_columns['time_active'];
}
public function getPacket()
{
return $this->_columns['packet'];
}
public function active($packetName, $hours)
{
$this->_columns['time_active'] = time();
$this->_columns['time_end'] = time()+$hours*3600;
$this->_columns['packet'] = $packetName;
mysql_query("INSERT INTO `invisibles` (`id_user`, `time_active`, `time_end`, `packet`) VALUES ('{$this->getUserId()}', '".$this->_columns['time_active']."', '".$this->_columns['time_end']."', '".mysql_real_escape_string($this->_columns['packet'])."') ");
}
public function deActive()
{
mysql_query("DELETE FROM `invisibles` WHERE `id_user`={$this->getUserId()} ");
}
public function __destruct()
{
if($this->getTimeEnd() && $this->getTimeEnd() < time())
{
$this->deActive();
}
}
}