Changeset 63 for branches

Show
Ignore:
Timestamp:
03/01/09 10:16:43 (3 years ago)
Author:
daris
Message:

user agent: added stats page + other minor changes

Location:
branches/user_agent
Files:
3 added
1 modified

Legend:

Unmodified
Added
Removed
  • branches/user_agent/functions.php

    r2 r63  
    44function ua_get_filename($name, $folder) 
    55{ 
    6         global $ext_info; 
     6        global $base_url; 
    77         
    88        $name = strtolower($name); 
     
    1010        $name = preg_replace('[^a-z0-9_]', '', $name); // remove special characters 
    1111        $name = forum_htmlencode($name); 
    12         $name = $ext_info['url'].'/img/'.$folder.'/'.$name.'.png'; 
     12        $name = $base_url.'/extensions/user_agent/img/'.$folder.'/'.$name.'.png'; 
    1313        return $name; 
    1414} 
     
    3434} 
    3535 
    36 function get_useragent_icons($useragent) 
     36function get_useragent_names($useragent) 
    3737{ 
    3838        if (!$useragent) 
    3939                return; 
    40                  
    41         $org_useragent = $useragent; 
     40         
     41        $browser_img = ''; 
     42        $browser_version = ''; 
     43         
    4244        $useragent = strtolower($useragent); 
    4345         
    44         $result = $browser = $system = ''; 
    45  
    4646        // Browser detection 
    47         $browsers = array('AWeb', 'Camino', 'Epiphany', 'Galeon', 'HotJava', 'iCab', 'Safari', 'Konqueror', 'Flock', 'Iceweasel', 'SeaMonkey', 'Firefox', 'Firebird', 'Netscape', 'Mozilla', 'Opera', 'Maxthon', 'PhaseOut', 'SlimBrowser', 'MSIE'); 
     47        $browsers = array('AWeb', 'Camino', 'Epiphany', 'Galeon', 'HotJava', 'iCab', 'MSIE', 'Safari', 'Konqueror', 'Flock', 'Iceweasel', 'SeaMonkey', 'Firefox', 'Firebird', 'Netscape', 'Mozilla', 'Opera', 'Maxthon', 'PhaseOut', 'SlimBrowser'); 
    4848         
    4949        $browser = ua_search_for_item($browsers, $useragent); 
    5050 
     51        $browser_version = substr($useragent, strpos($useragent, strtolower($browser)) + strlen($browser) + 1); 
     52        preg_match('#([\.0-9]*)#', $browser_version, $matches); 
     53        $browser_version = $matches[1]; 
     54 
    5155        if ($browser == 'MSIE') 
    5256        { 
    53                 $ie_version = intval(substr($ua, strpos($ua, 'msie')+5)); 
    54                 if ($ie_version > 6) 
    55                         $browser = 'MSIE7'; 
     57                if (intval($browser_version) > 6) 
     58                        $browser_img = 'Internet Explorer 7'; 
     59                $browser = 'Internet Explorer'; 
    5660        } 
    5761         
     
    9094                $browser = 'Unknown'; 
    9195 
    92          
    93         $result = '<img src="'.ua_get_filename($system, 'system').'" title="'.forum_htmlencode($system).'" alt="'.forum_htmlencode($system).'" style="margin-right: 1px"/>'; 
    94         $result .= '<img src="'.ua_get_filename($browser, 'browser').'" title="'.forum_htmlencode($org_useragent).'" alt="'.forum_htmlencode($browser).'" style="margin-left: 1px"/>'; 
     96        if (!$browser_img) 
     97                $browser_img = $browser; 
     98 
     99        $result = array( 
     100                'system'                        => $system, 
     101                'browser_img'           => $browser_img, 
     102                'browser_version'       => $browser_version, 
     103                'browser_name'          => $browser.' '.$browser_version 
     104        ); 
     105 
     106        return $result; 
     107} 
     108 
     109 
     110function get_useragent_icons($useragent) 
     111{ 
     112        $agent = get_useragent_names($useragent); 
     113 
     114        $result = '<img src="'.ua_get_filename($agent['system'], 'system').'" title="'.forum_htmlencode($agent['system']).'" alt="'.forum_htmlencode($agent['system']).'" style="margin-right: 1px"/>'; 
     115        $result .= '<img src="'.ua_get_filename($agent['browser_img'], 'browser').'" title="'.forum_htmlencode($agent['browser_name']).'" alt="'.forum_htmlencode($agent['browser_name']).'" style="margin-left: 1px"/>'; 
    95116 
    96117        // addslashes is needed for javascript 
    97         $description = addslashes($org_useragent) . '\n\nSystem:\t\t' . addslashes($system) .'\nPrzeglądarka:\t' . addslashes($browser) . '\n\t'; 
     118        $description = addslashes($useragent) . '\n\nSystem:\t\t' . addslashes($agent['system']) .'\nPrzeglądarka:\t' . addslashes($agent['browser_name']) . '\n\t'; 
    98119 
    99120        $result = '<span style="cursor: pointer" onclick="alert(\'' . forum_htmlencode($description) . '\')">' . $result . '</span>'; 
     
    101122        return $result; 
    102123} 
    103 ?> 
     124 
     125 
     126 
     127function ua_chart($value, $max) 
     128{ 
     129        $width = $value * 100 / $max; 
     130 
     131        return '<div style="float: left; width: 70%; border: 1px solid #aaa; margin-right: 1%; padding: 0;"><div style="width: '.$width.'%; padding: 0; background: #ddd; border-right: 1px solid #aaa;">&nbsp;</div></div>'; 
     132}