Файл: 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();
        }
    }
}