Ignore:
Timestamp:
Sep 3, 2008 12:03:19 PM (5 years ago)
Author:
thomasb
Message:

Auto-detect client language and timezone if desired by config/prefs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/include/rcube_shared.inc

    r1707 r1722  
    2929 
    3030/** 
    31  * Provide details about the client's browser 
    32  * 
    33  * @return array Key-value pairs of browser properties 
    34  */ 
    35 function rcube_browser() 
    36 { 
    37   $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT']; 
    38  
    39   $bw['ver'] = 0; 
    40   $bw['win'] = stristr($HTTP_USER_AGENT, 'win'); 
    41   $bw['mac'] = stristr($HTTP_USER_AGENT, 'mac'); 
    42   $bw['linux'] = stristr($HTTP_USER_AGENT, 'linux'); 
    43   $bw['unix']  = stristr($HTTP_USER_AGENT, 'unix'); 
    44  
    45   $bw['ns4'] = stristr($HTTP_USER_AGENT, 'mozilla/4') && !stristr($HTTP_USER_AGENT, 'msie'); 
    46   $bw['ns']  = ($bw['ns4'] || stristr($HTTP_USER_AGENT, 'netscape')); 
    47   $bw['ie']  = stristr($HTTP_USER_AGENT, 'msie'); 
    48   $bw['mz']  = stristr($HTTP_USER_AGENT, 'mozilla/5'); 
    49   $bw['opera'] = stristr($HTTP_USER_AGENT, 'opera'); 
    50   $bw['safari'] = stristr($HTTP_USER_AGENT, 'safari'); 
    51  
    52   if($bw['ns']) 
    53   { 
    54     $test = eregi("mozilla\/([0-9\.]+)", $HTTP_USER_AGENT, $regs); 
    55     $bw['ver'] = $test ? (float)$regs[1] : 0; 
    56   } 
    57   if($bw['mz']) 
    58   { 
    59     $test = ereg("rv:([0-9\.]+)", $HTTP_USER_AGENT, $regs); 
    60     $bw['ver'] = $test ? (float)$regs[1] : 0; 
    61   } 
    62   if($bw['ie']) 
    63   { 
    64     $test = eregi("msie ([0-9\.]+)", $HTTP_USER_AGENT, $regs); 
    65     $bw['ver'] = $test ? (float)$regs[1] : 0; 
    66   } 
    67   if($bw['opera']) 
    68   { 
    69     $test = eregi("opera ([0-9\.]+)", $HTTP_USER_AGENT, $regs); 
    70     $bw['ver'] = $test ? (float)$regs[1] : 0; 
    71   } 
    72  
    73   if(eregi(" ([a-z]{2})-([a-z]{2})", $HTTP_USER_AGENT, $regs)) 
    74     $bw['lang'] =  $regs[1]; 
    75   else 
    76     $bw['lang'] =  'en'; 
    77  
    78   $bw['dom'] = ($bw['mz'] || $bw['safari'] || ($bw['ie'] && $bw['ver']>=5) || ($bw['opera'] && $bw['ver']>=7)); 
    79   $bw['pngalpha'] = $bw['mz'] || $bw['safari'] || ($bw['ie'] && $bw['ver']>=5.5) || 
    80                     ($bw['ie'] && $bw['ver']>=5 && $bw['mac']) || ($bw['opera'] && $bw['ver']>=7) ? TRUE : FALSE; 
    81  
    82   return $bw; 
    83 } 
    84  
    85  
    86 /** 
    8731 * Send HTTP headers to prevent caching this page 
    8832 */ 
Note: See TracChangeset for help on using the changeset viewer.