Вход Регистрация
Файл: modules/lib/useragent.class.php
Строк: 75
<?php
// Useragent Class

class UserAgentFactoryPSec
{
    public static function 
analyze($string$imageSize null$imagePath null$imageExtension null)
    {
        
$class = new UserAgentPSec();
        
$imageSize === null || $class->imageSize $imageSize;
        
$imagePath === null || $class->imagePath $imagePath;
        
$imageExtension === null || $class->imageExtension $imageExtension;
        
$class->analyze($string);
        
        return 
$class;
    }
}

class 
UserAgentPSec
{
    private 
$_imagePath "";
    private 
$_imageSize 16;
    private 
$_imageExtension ".png";
    
    private 
$_data = array();
    
    public function 
__get($param)
    {
        
$privateParam '_' $param;
        switch (
$param) {
            case 
'imagePath':
                return 
$this->_imagePath $this->_imageSize '/';
                break;
            default:
                if (isset(
$this->$privateParam)) {
                    return 
$this->$privateParam;
                } elseif (isset(
$this->_data[$param])) {
                    return 
$this->_data[$param];
                }
                break;
        }
        
        return 
null;
    }
    
    public function 
__set($name$value)
    {
        
$trueName '_' $name;
        if (isset(
$this->$trueName)) {
            
$this->$trueName $value;
        }
    }
    
    public function 
__construct()
    {
        
$this->_imagePath 'img/';
    }
    
    private function 
_makeImage($dir$code)
    {
        return 
$this->imagePath $dir '/' $code $this->imageExtension;
    }
    
    private function 
_makePlatform()
    {
        
//$this->_data['device']   =& $this->_data['os']; // Custom
        
$this->_data['platform'] =& $this->_data['device'];
        if (@
$this->_data['device']['title'] != '') {
            
$this->_data['platform'] =& $this->_data['device'];
        } elseif (@
$this->_data['os']['title'] != '') {
            
$this->_data['platform'] =& $this->_data['os'];
        } else {
            
$this->_data['platform'] = array(
                
"link" => "#",
                
"title" => "Unknown",
                
"code" => "null",
                
"dir" => "browser",
                
"type" => "os",
                
"image" => $this->_makeImage('browser''null')
            );
        }
        
    }
    
    public static function 
__autoload($className)
    {
        
$filePath dirname(__file__) . '/' $className '.php';
        if (
is_file($filePath)) {
            require_once 
$filePath;
        }
    }
    
    public function 
analyze($string)
    {
        
$this->_data['useragent'] = $string;
        
$classList                = array(
            
"os",
            
"browser"
        
);
        foreach (
$classList as $value) {
            
$class                        "useragent_detect_" $value;
            
// Not support in PHP 5.2
            //$this->_data[$value] = $class::analyze($string);
            
$this->_data[$value]          = call_user_func($class '::analyze'$string);
            
$this->_data[$value]['image'] = $this->_makeImage($value$this->_data[$value]['code']);
            
        }
        
        
// platform
        
$this->_makePlatform();
    }
    
}
spl_autoload_register(array(
    
'UserAgentPSec',
    
'__autoload'
));
Онлайн: 0
Реклама