ILIAS  Release_4_2_x_branch Revision 61807
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilBrowser Class Reference

Browser check. More...

+ Collaboration diagram for ilBrowser:

Public Member Functions

 __construct ()
 Constructor.
 isMobile ()
 __call ($name, $arguments)
 returnArray ()
 getAgent ()
 getVersion ($a_as_array=true)
 getPlatform ()
 isLinux ()
 isUnix ()
 isBeos ()
 isMac ()
 isWindows ()
 isIE ()
 isNetscape ()
 means: Netscape/Mozilla without Gecko engine
 isMozilla ()
 means: Netscape/Mozilla with Gecko engine
 isOpera ()
 isSafari ()
 isFirefox ()

Protected Member Functions

 isDevice ($device)

Protected Attributes

 $BROWSER_AGENT
 $BROWSER_VER
 $BROWSER_PLATFORM
 $br
 $p
 $data
 $accept
 $userAgent
 $isMobile = false
 $isAndroid = null
 $isAndroidtablet = null
 $isIphone = null
 $isIpad = null
 $isBlackberry = null
 $isOpera = null
 $isPalm = null
 $isWindows = null
 $isWindowsphone = null
 $isGeneric = null
 $devices

Detailed Description

Browser check.

Version
Id:
class.ilBrowser.php 31127 2011-10-14 07:38:25Z mjansen
Author
Michael Jansen mjans.nosp@m.en@d.nosp@m.ataba.nosp@m.y.de http://www.opensource.org/licenses/mit-license.php The MIT License

Includes parts of php-mobile-project: Copyright (c) 2011, vic.stanciu

Definition at line 28 of file class.ilBrowser.php.

Constructor & Destructor Documentation

ilBrowser::__construct ( )

Constructor.

public

Definition at line 69 of file class.ilBrowser.php.

References isDevice(), and isMobile().

{
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
/*
Determine browser and version
*/
if(preg_match('/MSIE ([0-9].[0-9]{1,2})/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_VER = $log_version[1];
$this->BROWSER_AGENT = 'IE';
}
elseif(preg_match('/Opera ([0-9].[0-9]{1,2})/',$HTTP_USER_AGENT,$log_version) ||
preg_match('/Opera\/([0-9].[0-9]{1,2})/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_VER = $log_version[1];
$this->BROWSER_AGENT = 'OPERA';
}
elseif(preg_match('/Safari ([0-9\/.]*)/',$HTTP_USER_AGENT,$log_version) ||
preg_match('/Safari\/([0-9\/.]*)/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_VER = $log_version[1];
$this->BROWSER_AGENT = 'Safari';
}
elseif(preg_match('/Firefox ([0-9\/.]*)/',$HTTP_USER_AGENT,$log_version) ||
preg_match('/Firefox\/([0-9\/.]*)/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_VER = $log_version[1];
$this->BROWSER_AGENT = 'Firefox';
}
elseif(preg_match('/iCab ([0-9].[0-9a-zA-Z]{1,4})/',$HTTP_USER_AGENT,$log_version) ||
preg_match('/iCab\/([0-9].[0-9a-zA-Z]{1,4})/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_VER = $log_version[1];
$this->BROWSER_AGENT = 'iCab';
}
elseif(preg_match('/Mozilla ([0-9].[0-9a-zA-Z]{1,4})/',$HTTP_USER_AGENT,$log_version) ||
preg_match('/Mozilla\/([0-9].[0-9a-zA-Z]{1,4})/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_VER = $log_version[1];
if (preg_match('/Gecko/',$HTTP_USER_AGENT,$log_version))
{
$this->BROWSER_AGENT = 'Mozilla';
}
else
{
$this->BROWSER_AGENT = 'Netscape';
}
}
elseif(preg_match('/Konqueror\/([0-9].[0-9].[0-9]{1,2})/',$HTTP_USER_AGENT,$log_version) ||
preg_match('/Konqueror\/([0-9].[0-9]{1,2})/',$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($HTTP_USER_AGENT,'Win'))
{
$this->BROWSER_PLATFORM='Win';
}
elseif(strstr($HTTP_USER_AGENT,'Mac'))
{
$this->BROWSER_PLATFORM='Mac';
}
elseif(strstr($HTTP_USER_AGENT,'Linux'))
{
$this->BROWSER_PLATFORM='Linux';
}
elseif(strstr($HTTP_USER_AGENT,'Unix'))
{
$this->BROWSER_PLATFORM='Unix';
}
elseif(strstr($HTTP_USER_AGENT,'Beos'))
{
$this->BROWSER_PLATFORM='Beos';
}
else
{
$this->BROWSER_PLATFORM='Other';
}
// Mobile detection
$this->userAgent = $_SERVER['HTTP_USER_AGENT'];
$this->accept = $_SERVER['HTTP_ACCEPT'];
if(isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE']))
{
$this->isMobile = true;
}
else if(strpos($this->accept, 'text/vnd.wap.wml') > 0 || strpos($this->accept, 'application/vnd.wap.xhtml+xml') > 0)
{
$this->isMobile = true;
}
else
{
foreach($this->devices as $device => $regexp)
{
if($this->isDevice($device))
{
$this->isMobile = true;
}
}
}
/*
echo "<br>Agent: $HTTP_USER_AGENT";
echo "<br><b>Browser</b>";
echo "<br>IE: ".$this->isIE();
echo "<br>Netscape: ".$this->isNetscape();
echo "<br>Mozilla: ".$this->isMozilla();
echo "<br>Firefox: ".$this->isFirefox();
echo "<br>Safari: ".$this->isSafari();
echo "<br>Opera: ".$this->isOpera();
echo "<br><b>OS</b>";
echo "<br>Mac: ".$this->isMac();
echo "<br>Windows: ".$this->isWindows();
echo "<br>Linux: ".$this->isLinux();
echo "<br>Unix: ".$this->isUnix();
echo "<br>Beos: ".$this->isBeos();
echo "<br><b>Summary</b>";
echo "<br>OS: ".$this->getPlatform();
echo "<br>Version: ".$this->getVersion(false);
echo "<br>Agent: ".$this->getAgent();
*/
// 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>';
}
}

+ Here is the call graph for this function:

Member Function Documentation

ilBrowser::__call (   $name,
  $arguments 
)

Definition at line 222 of file class.ilBrowser.php.

References isDevice().

{
$device = substr($name, 2);
if($name == 'is' . ucfirst($device) && array_key_exists(strtolower($device), $this->devices))
{
return $this->isDevice($device);
}
else
{
trigger_error('Method '.$name.' not defined', E_USER_WARNING);
}
}

+ Here is the call graph for this function:

ilBrowser::getAgent ( )

Definition at line 258 of file class.ilBrowser.php.

References $BROWSER_AGENT.

Referenced by isFirefox(), isIE(), isMozilla(), isNetscape(), isOpera(), isSafari(), and returnArray().

{
}

+ Here is the caller graph for this function:

ilBrowser::getPlatform ( )

Definition at line 268 of file class.ilBrowser.php.

References $BROWSER_PLATFORM.

Referenced by isBeos(), isLinux(), isMac(), isUnix(), isWindows(), and returnArray().

+ Here is the caller graph for this function:

ilBrowser::getVersion (   $a_as_array = true)

Definition at line 263 of file class.ilBrowser.php.

Referenced by returnArray().

{
return explode('.', $this->BROWSER_VER);
}

+ Here is the caller graph for this function:

ilBrowser::isBeos ( )

Definition at line 297 of file class.ilBrowser.php.

References getPlatform().

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

+ Here is the call graph for this function:

ilBrowser::isDevice (   $device)
protected

Definition at line 235 of file class.ilBrowser.php.

References $userAgent.

Referenced by __call(), and __construct().

{
$var = 'is' . ucfirst($device);
$return = $this->$var === null ? (bool) preg_match('/' . $this->devices[strtolower($device)] . '/i', $this->userAgent) : $this->$var;
if($device != 'generic' && $return == true)
{
$this->isGeneric = false;
}
return $return;
}

+ Here is the caller graph for this function:

ilBrowser::isFirefox ( )

Definition at line 403 of file class.ilBrowser.php.

References getAgent().

{
if($this->getAgent() == 'Firefox')
{
return true;
}
else
{
return false;
}
}

+ Here is the call graph for this function:

ilBrowser::isIE ( )

Definition at line 333 of file class.ilBrowser.php.

References getAgent().

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

+ Here is the call graph for this function:

ilBrowser::isLinux ( )

Definition at line 273 of file class.ilBrowser.php.

References getPlatform().

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

+ Here is the call graph for this function:

ilBrowser::isMac ( )

Definition at line 309 of file class.ilBrowser.php.

References getPlatform().

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

+ Here is the call graph for this function:

ilBrowser::isMobile ( )

Definition at line 217 of file class.ilBrowser.php.

References $isMobile.

Referenced by __construct().

{
}

+ Here is the caller graph for this function:

ilBrowser::isMozilla ( )

means: Netscape/Mozilla with Gecko engine

Definition at line 367 of file class.ilBrowser.php.

References getAgent().

{
if($this->getAgent() == 'Mozilla')
{
return true;
}
else
{
return false;
}
}

+ Here is the call graph for this function:

ilBrowser::isNetscape ( )

means: Netscape/Mozilla without Gecko engine

Definition at line 350 of file class.ilBrowser.php.

References getAgent().

{
if($this->getAgent() == 'Netscape')
{
return true;
}
else
{
return false;
}
}

+ Here is the call graph for this function:

ilBrowser::isOpera ( )

Definition at line 379 of file class.ilBrowser.php.

References getAgent().

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

+ Here is the call graph for this function:

ilBrowser::isSafari ( )

Definition at line 391 of file class.ilBrowser.php.

References getAgent().

{
if($this->getAgent() == 'Safari')
{
return true;
}
else
{
return false;
}
}

+ Here is the call graph for this function:

ilBrowser::isUnix ( )

Definition at line 285 of file class.ilBrowser.php.

References getPlatform().

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

+ Here is the call graph for this function:

ilBrowser::isWindows ( )

Definition at line 321 of file class.ilBrowser.php.

References getPlatform().

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

+ Here is the call graph for this function:

ilBrowser::returnArray ( )

Definition at line 247 of file class.ilBrowser.php.

References $data, getAgent(), getPlatform(), and getVersion().

{
$this->data = array(
'agent' => $this->getAgent(),
'version' => $this->getVersion(false),
'platform' => $this->getPlatform()
);
return $this->data;
}

+ Here is the call graph for this function:

Field Documentation

ilBrowser::$accept
protected

Definition at line 36 of file class.ilBrowser.php.

ilBrowser::$br
protected

Definition at line 33 of file class.ilBrowser.php.

ilBrowser::$BROWSER_AGENT
protected

Definition at line 30 of file class.ilBrowser.php.

Referenced by getAgent().

ilBrowser::$BROWSER_PLATFORM
protected

Definition at line 32 of file class.ilBrowser.php.

Referenced by getPlatform().

ilBrowser::$BROWSER_VER
protected

Definition at line 31 of file class.ilBrowser.php.

ilBrowser::$data
protected

Definition at line 35 of file class.ilBrowser.php.

Referenced by returnArray().

ilBrowser::$devices
protected
Initial value:
array(
'android' => 'android.*mobile',
'androidtablet' => 'android(?!.*mobile)',
'blackberry' => 'blackberry',
'blackberrytablet' => 'rim tablet os',
'iphone' => '(iphone|ipod)',
'ipad' => '(ipad)',
'palm' => '(avantgo|blazer|elaine|hiptop|palm|plucker|xiino)',
'windows' => 'windows ce; (iemobile|ppc|smartphone)',
'windowsphone' => 'windows phone os',
'generic' => '(kindle|mobile|mmp|midp|o2|pda|pocket|psp|symbian|smartphone|treo|up.browser|up.link|vodafone|wap|opera mini)'
)

Definition at line 49 of file class.ilBrowser.php.

ilBrowser::$isAndroid = null
protected

Definition at line 39 of file class.ilBrowser.php.

ilBrowser::$isAndroidtablet = null
protected

Definition at line 40 of file class.ilBrowser.php.

ilBrowser::$isBlackberry = null
protected

Definition at line 43 of file class.ilBrowser.php.

ilBrowser::$isGeneric = null
protected

Definition at line 48 of file class.ilBrowser.php.

ilBrowser::$isIpad = null
protected

Definition at line 42 of file class.ilBrowser.php.

ilBrowser::$isIphone = null
protected

Definition at line 41 of file class.ilBrowser.php.

ilBrowser::$isMobile = false
protected

Definition at line 38 of file class.ilBrowser.php.

Referenced by isMobile().

ilBrowser::$isOpera = null
protected

Definition at line 44 of file class.ilBrowser.php.

ilBrowser::$isPalm = null
protected

Definition at line 45 of file class.ilBrowser.php.

ilBrowser::$isWindows = null
protected

Definition at line 46 of file class.ilBrowser.php.

ilBrowser::$isWindowsphone = null
protected

Definition at line 47 of file class.ilBrowser.php.

ilBrowser::$p
protected

Definition at line 34 of file class.ilBrowser.php.

ilBrowser::$userAgent
protected

Definition at line 37 of file class.ilBrowser.php.

Referenced by isDevice().


The documentation for this class was generated from the following file: