phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] phpgwapi/inc/class.browser.inc.php, 1.19


From: nomail
Subject: [Phpgroupware-cvs] phpgwapi/inc/class.browser.inc.php, 1.19
Date: Thu, 30 Dec 2004 07:47:30 +0100

Update of /phpgwapi/inc
Added Files:
        Branch: 
          class.browser.inc.php

date: 2004/12/30 06:47:30;  author: skwashd;  state: Exp;  lines: +73 -74

Log Message:
new HEAD
=====================================================================
<?php
        /**
        * Browser detect functions
        * @author Miles Lott <address@hidden>
        * @copyright Copyright (C) 1999,2000 The SourceForge Crew - 
http://sourceforge.net
        * @copyright Portions Copyright (C) 2004 Free Software Foundation, Inc. 
http://www.fsf.org/
        * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General 
Public License
        * @package phpgwapi
        * @subpackage network
        * @version $Id: class.browser.inc.php,v 1.19 2004/12/30 06:47:30 
skwashd Exp $
        * @internal Majority of code borrowed from Sourceforge 2.5
        */

        /**
        * Browser detect functions
        *
        * @package phpgwapi
        * @subpackage network
        */
        class browser
        {
                var $BROWSER_AGENT;
                var $BROWSER_VER;
                var $BROWSER_PLATFORM;
                var $br;
                var $p;
                var $data;

                /**
                * Determine browser, version and platform
                */
                function browser()
                {
                        if(ereg('MSIE 
([0-9].[0-9]{1,2})',$_SERVER['HTTP_USER_AGENT'],$log_version))
                        {
                                $this->BROWSER_VER = $log_version[1];
                                $this->BROWSER_AGENT = 'IE';
                        }
                        elseif(ereg('Opera 
([0-9].[0-9]{1,2})',$_SERVER['HTTP_USER_AGENT'],$log_version) ||
                                
ereg('Opera/([0-9].[0-9]{1,2})',$_SERVER['HTTP_USER_AGENT'],$log_version))
                        {
                                $this->BROWSER_VER   = $log_version[1];
                                $this->BROWSER_AGENT = 'OPERA';
                        }
                        elseif(eregi('iCab 
([0-9].[0-9a-zA-Z]{1,4})',$_SERVER['HTTP_USER_AGENT'],$log_version) ||
                                
eregi('iCab/([0-9].[0-9a-zA-Z]{1,4})',$_SERVER['HTTP_USER_AGENT'],$log_version))
                        {
                                $this->BROWSER_VER   = $log_version[1];
                                $this->BROWSER_AGENT = 'iCab';
                        } 
                        
elseif(ereg('Gecko',$_SERVER['HTTP_USER_AGENT'],$log_version))
                        {
                                $this->BROWSER_VER   = $log_version[1];
                                $this->BROWSER_AGENT = 'MOZILLA';
                        }
                        
elseif(ereg('Konqueror/([0-9].[0-9].[0-9]{1,2})',$_SERVER['HTTP_USER_AGENT'],$log_version)
 ||
                                
ereg('Konqueror/([0-9].[0-9]{1,2})',$_SERVER['HTTP_USER_AGENT'],$log_version))
                        {
                                $this->BROWSER_VER=$log_version[1];
                                $this->BROWSER_AGENT='Konqueror';
                        }
                        else
                        {
                                $this->BROWSER_VER=0;
                                $this->BROWSER_AGENT='OTHER';
                        }

                        /*
                                Determine platform
                        */
                        if(strstr($_SERVER['HTTP_USER_AGENT'],'Win'))
                        {
                                $this->BROWSER_PLATFORM='Win';
                        }
                        elseif(strstr($_SERVER['HTTP_USER_AGENT'],'Mac'))
                        {
                                $this->BROWSER_PLATFORM='Mac';
                        }
                        elseif(strstr($_SERVER['HTTP_USER_AGENT'],'Linux'))
                        {
                                $this->BROWSER_PLATFORM='Linux';
                        }
                        elseif(strstr($_SERVER['HTTP_USER_AGENT'],'Unix'))
                        {
                                $this->BROWSER_PLATFORM='Unix';
                        }
                        elseif(strstr($_SERVER['HTTP_USER_AGENT'],'Beos'))
                        {
                                $this->BROWSER_PLATFORM='Beos';
                        }
                        else
                        {
                                $this->BROWSER_PLATFORM='Other';
                        }

                        /*
                        echo "\n\nAgent: " . $_SERVER['HTTP_USER_AGENT'];
                        echo "\nIE: ".browser_is_ie();
                        echo "\nMac: ".browser_is_mac();
                        echo "\nWindows: ".browser_is_windows();
                        echo "\nPlatform: ".browser_get_platform();
                        echo "\nVersion: ".browser_get_version();
                        echo "\nAgent: ".browser_get_agent();
                        */

                        // The br and p functions are supposed to return the 
correct
                        // value for tags that do not need to be closed.  This 
is
                        // per the xhmtl spec, so we need to fix this to include
                        // all compliant browsers we know of.
                        if($this->BROWSER_AGENT == 'IE')
                        {
                                $this->br = '<br />';
                                $this->p = '<p />';
                        }
                        else
                        {
                                $this->br = '<br />';
                                $this->p = '<p>';
                        }
                }

                function return_array()
                {
                        $this->data = array(
                                'agent'    => $this->get_agent(),
                                'version'  => $this->get_version(),
                                'platform' => $this->get_platform()
                        );

                        return $this->data;
                }

                function get_agent()
                {
                        return $this->BROWSER_AGENT;
                }

                function get_version()
                {
                        return $this->BROWSER_VER;
                }

                function get_platform()
                {
                        return $this->BROWSER_PLATFORM;
                }

                function is_linux()
                {
                        if($this->get_platform()=='Linux')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_unix()
                {
                        if($this->get_platform()=='Unix')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_beos()
                {
                        if($this->get_platform()=='Beos')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_mac()
                {
                        if($this->get_platform()=='Mac')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_windows()
                {
                        if($this->get_platform()=='Win')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_ie()
                {
                        if($this->get_agent()=='IE')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_netscape()
                {
                        if($this->get_agent()=='MOZILLA')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                function is_opera()
                {
                        if($this->get_agent()=='OPERA')
                        {
                                return true;
                        }
                        else
                        {
                                return false;
                        }
                }

                /**
                * Echo content headers for file downloads
                *
                * @param string $fn Filename
                * @param string $mime Content mime type
                * @param integer $length Content length
                * @param boolean $nocache When set to true output no-cache 
pragmas
                */
                function 
content_header($fn='',$mime='',$length='',$nocache=True)
                {
                        if($mime != 'text/plain')
                        {
                                $mime_magic = 
createObject('phpgwapi.mime_magic');
                                $mime = $mime_magic->filename2mime($fn);
                        }
                        if($fn)
                        {
                                if($this->get_agent() == 'IE') // && 
browser_get_version() == "5.5")
                                {
                                        $attachment = '';
                                }
                                elseif( ($this->get_agent() != 'IE') && ($mime 
!= 'text/plain') )
                                {
                                        $attachment = ' attachment;';
                                }
                                else
                                {
                                        $attachment = ' inline;';
                                }

                                // Show this for all
                                header('Content-Disposition:'.$attachment.' 
filename="'.$fn.'"');
                                header('Content-Type: '.$mime);

                                if($length)
                                {
                                        header('Content-Length: '.$length);
                                }

                                if($nocache)
                                {
                                        header('Pragma: no-cache');
                                        header('Pragma: public');
                                        header('Expires: 0');
                                        header('Cache-Control: must-revalidate, 
post-check=0, pre-check=0');
                                }
                        }
                }
        }
?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]